问题: 在数据库编程开发中,有时会遇到数据量比较大的情况,如果直接大批量进行添加数据.修改数据.删除数据,就会是比较大的事务,事务日志也比较大,耗时久的话会对正常操作造成一定的阻塞.虽不至于达到删库跑路的程度,但也严重影响了用户体验,老是卡巴死机的感觉.这时我们可以对这个大批量操作进行分小批事务操作处理,使每批时间比较短,减少阻塞.大而化小,小而化了.举个例子:如果大批事务需要跑5分钟,那就阻塞了5分钟:如果分成10个小批,每小批0.5分钟,那就降低了长时间阻塞的几率,提高了用户体验. 把目光放…
工作过程中,如果一个数据库的表比较多,手工编写统计脚本就会比较繁琐,于是摸索出自动生成各表统计数据量脚本的通用方法,直接上代码: /* 脚本来源:https://www.cnblogs.com/zhang502219048/p/10970193.html */ ), Num int) exec sp_MSforeachtable 'insert into #t select ''?'', count(*) from ?' select replace(replace(TableName,'[',…
原文:SQL Server中的CLR编程--用.NET为SQL Server编写存储过程和函数 很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程.触发器和存储过程的,不过之前开发的系统要么因为历史原因用的是SQL2000要么根本用不着在SQL Server中启用CLR,所以一直没有尝试.最近因为项目的原因,在这方面做了一个调研,现在在这里分享一下心得. 首先要说明的是要在SQL Server中启用CLR必须是在SQL Server2005及以上版本,其次在默认情况下是…
SQL Server Management Studio 执行超大脚本文件 启动cmd.exe , cd 到C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn目录 (具体目录根据自己的Management Studio安装位置修改) 键入:sqlcmd -S 127.0.0.1 -U sa -P 000000 -d DataBaseName -i sqlfileName.sql 参数说明: -S服务器地址 -U用户名 -P密码 -…
C#生成sql视图的实体类 using System;using System.Text;using CodeSmith.Engine;using SchemaExplorer;using System.ComponentModel;using System.Data; namespace Common.Data{ /// <summary> /// CodeSmith生成SQL Server视图的实体类脚本 /// </summary> public class ViewUtil…
一.问题 问题1 场景:如果你未来的丈母娘要求你,第1天给她1分钱,第2天给2分钱,第3天给4分钱,以此类推,每天给前一天的2倍,给1个月(按30天)算就行.问:第30天给多少钱,总共给多少钱? 问题2 场景:如果有两份工作. 第1份:第1天给你1分钱,第2天给你2分钱,第3天给你4分钱,以此类推,每天给前一天的2倍,给1个月(按30天). 第2份:一个月给你10万工资.问:哪份工资高?给你选择的话,你要第1份还是第2份? 二.相关热搜关键词 1天1分钱翻倍累计到三十天后多少钱 1天1分钱第二天…
以前看到有些朋友说必须SQL Server 2008才能导出包含数据的脚本,后来仔细研究发现其实SQL Server 2008 R2也是可以的,只需在导出的时候在高级中设置一下即可. 1.首先在数据库上右键依次选择任务=>生成脚本. 2.在弹出的窗口中选择要操作的表,然后点击下一步. 3.点击窗口上的高级按钮. 4.把滚动条拉到最下面会看到“要编写脚本的数据的类型”,在下拉中选择架构和数据或仅数据,其他选项可自行设置,然后确定即可.…
特别说明,本文是从这里 修改SQL Server Management Studio默认设置提高开发效率. "抄过来的",为方便个人记忆才写此文(非常感谢这哥们儿的分享.) 原文地址:http://www.cnblogs.com/xuchengzone/archive/2013/05/29/ssms.html   http://www.cnblogs.com/xuchengzone/archive/2013/05/29/ssms.html#3280170 对上面那篇文章的内容扩展追加.…
SQL Server性能优化的一些常用脚本,适用于SQL Server 2008,更高的版本某些系统表的字段有所不同,建议参考MSDN. 死锁相关 /**************************************** 1. 查询当前DB的锁分配情况 Phoenix.Feng 2012-12-01 ****************************************/ SELECT request_session_id, resource_type, request_st…
1.批处理 批处理指的是包含一条或多条T-SQL语句的语句组,这组语句从应用程序一次性地发送到SQL Server服务器执行.SQL Server服务器将批处理语句编译成一个可执行单元(即执行计划),执行计划中的语名每次执行一次. GO命令表示批处理的结束.如果在T-SQL脚本中没有GO命令,那么它将被作为单个批处理来执行. SQL Server讲批处理中的语句作为一个整体,编译为一个执行计划,因此批处理中的语句是一起提交给服务器的,所以可以节省系统开销. 当脚本中的一些事情必须发生在另一件事情…
Sql 组织编写语句 declare @one int,@tow int,@str varchar(100),@num intselect @one=1while(@one<=9)beginselect @tow=1,@str=''      while(@tow<=@one)      begin        set @num =@tow*@one   --求积        set @str+='  '+convert(varchar,@tow)+'*'+convert(varchar,…
假如你有一个购物类的网站,那么你如何给你的客户来推荐产品呢?这个功能在很多电商类网站都有,那么,通过SQL Server Analysis Services的数据挖掘功能,你也可以轻松的来构建类似的功能. 上一篇中介绍的是如何通过DMX来创建挖掘模型,这一篇讲简单介绍如何通过编程的方式来创建挖掘模型. 通过编程的方式主要通过AMO来实现,分析服务的所有跟架构相关的实现,包括多维数据集和数据挖掘,都通过这个接口实现. AMO对象树包含了支持多维数据集和数据挖掘所有的对象模型,在我这篇随笔中可以详细…
二.函数计算部分 --------------------标量聚合--------------------/* 标量聚合-主要在聚合函数操作中产生 计算标量:根据行中的现有值计算出一个新值 流聚合:在相应排序的流中,计算多组行的汇总值 所有的聚合函数都会有流聚合出现,但是其不会消耗IO,只消耗CPU 除MAX()和MIN()外其他聚合函数都会同时出现标量和聚合两个操作 当列列表只包含聚合函数时,则结果集只具有一个行给出的聚合值, 该值由与WHERE子句相匹配的源行计算得到. */ SELECT…
SQL Server 2008配置邮件的过程就不写了,网上的案例太多了. http://www.cnblogs.com/woodytu/p/5154526.html 这个案例就不错. 主要写下配置完后的错误处理: 数据库邮件故障微软官网: 1. sql server 2008 阻止了对组件‘Database Mail XPS’ 在 msdb 数据库中运行如下代码: EXEC sys.sp_configure N'show advanced options', 1 RECONFIGURE WITH…
在window server 2012服务器上,安装 SQL Server 2012的过程中,报了一个错误,一个安装失败, 在安装SQL 2012的过程中.出现下面错误:启用 Windows 功能 NetFx3 时出错,错误代码: -2146498298. 请尝试从 Windows 管理工具启用 Windows 功能 NetFx3,然后又一次执行安装程序. 有关怎样启用 Windows 功能的具体信息,请參阅 linkid=227143" target="_blank">…
博主做过比较多项目的archive脚本编写,对于这种删除数据的脚本开发,肯定是一开始的话用最简单的一个delete语句,然后由于部分表数据量比较大啊,索引比较多啊,会发现删除数据很慢而且影响系统的正常使用.然后就对delete语句进行按均匀数据量分批delete的改写,这样的话,原来的删除一个表用一个语句,就可能变成几十行,如果archive的表有十几个甚至几十个,那我们的脚本篇幅就非常大了,增加了开发和维护的成本,不利于经验比较少的新入职同事去开发archive脚本,也容易把注意力分散到所谓分…
问题:有时已有项目要移植,例如原来在广州地区使用的某系统,突然说惠州那边也要用这套一样的系统.或者,在demo环境下弄了一些测试数据.然后要清空全部表数据.如果表比较多的话,逐个表手工编写脚本就太麻烦了. 解决方案:本博主就教教大家怎么仅用一个简单语句快速删除全库各表数据,全部清空数据.使用系统存储过程sp_MSforeachtable结合truncate table语句.达到快速删除数据库各表全部数据的目的. 脚本: /* 说明:本脚本用于清空数据库各表数据,请谨慎使用,请提前备份好数据库,如…
问题:工作过程中,不管是什么项目,伴随着项目不断升级版本,对应的项目数据库业务版本也不断升级,数据库出现新增表.修改表.删除表.新增字段.修改字段.删除字段等变化,如果人工检查,数据库表和字段比较多的话,工作量就非常大. 解决方案:这里博主为大家分享一个在工作过程中编写的自动检查数据库表结构版本差异的通用脚本,只需要把新旧数据库名称批量替换成实际的名称就可以,支持通过链接服务器跨服务器检查不同服务器的两个数据库表结构差异. 脚本: /* 使用说明:Old数据库为DB_V1,New数据库为[loc…
问题: 在数据库编程开发中,有时需要获取一年前的日期,以便以此为时间的分界点,查询其前后对应的数据量.例如:1. 想查询截止到一年前当天0点之前的数据量,以及一年前当天0点开始到现在的数据量.2. 想查询截止到一年前当天24点之前的数据量,以及一年前当天24点开始到现在的数据量.3. 想查询截止到一年前当月1日0点之前的数据量,以及一年前当月1日0点开始到现在的数据量.4. 想查询截止到一年前当月最后一天24点之前的数据量,以及一年前当月最后一天24点开始到现在的数据量. 以上这四种情况的具体查…
/****** Object: StoredProcedure [dbo].[GET_TableScript_MYSQL] Script Date: 06/15/2012 13:05:14 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /*============================================================== 名称: GET_TableScript_MYSQL 功能: 生成单…
/****** Object: StoredProcedure [dbo].[GET_TableScript_ORACLE] Script Date: 06/15/2012 13:07:16 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /*============================================================== 名称: GET_TableScript_ORACLE 功能: 生…
问题描述:想把一个数据库里的表和字段复制到另一个数据库里: 方法一:a.生成脚本文件 选择数据库右键->任务->生成脚本: b. 选择特定的数据库对象->下一步: c.高级->编写脚本的数据类型选择构架和数据->选择生成的脚本文件位置->下一步: d. 下一步->下一步>-完成:找到生成的脚本:…
主界面代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; n…
ALTER PROCEDURE [dbo].[Usp_OutputData] @tablename sysname, @outputIdentitycolumn int AS declare @column varchar(3000) declare @columndata varchar(8000) declare @sql varchar(8000) declare @xtype tinyint declare @name sysname declare @objectId int decl…
四则运算如下: --加减乘除(+.-.*.\.%)取余运算 SELECT --加法运算 AS 加法结果2, --减法运算 -2.5 AS 减法结果1, 15.5+5.5 AS 减法结果2, --乘法运算 AS 乘法结果2, --除法运算 *3.5 AS 除法结果2, --取余运算 AS 取余结果2 GO 结果: 比较运算: --比较(>.<.>=. <=. =. <>)运算 --大于 SELECT '5大于3' ELSE SELECT '5小于或等于3' --小于 SE…
拿AAAAAAAA数据库为例子,除了汉字标注的替换真实的数据,其他都不动        CREATE proc [dbo].[p_log_backupAAAAAAAA]    @dbname sysname='',                @bkflogname nvarchar(260)='',                @bkpath nvarchar(260)='w:'        as                declare @sql varchar(8000)    …
--查询某个数据库的连接数 select count(*) from Master.dbo.SysProcesses where dbid=db_id() --前名其他等待类型 * from sys.dm_os_wait_stats ORDER BY wait_time_ms DESC SELECT *FROM sys.dm_os_wait_stats WHERE wait_type like 'PAGELATCH%' OR wait_type like 'LAZYWRITER_SLEEP%'…
USE [master]GO /****** Object:  LinkedServer [SQL01]    Script Date: 2020/4/9 11:51:17 ******/EXEC master.dbo.sp_addlinkedserver @server = N'SQL01', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'域名或者IP' /* For security reasons the linked server r…
--每秒死锁数量 SELECT * FROM sys.dm_os_performance_counters WHERE counter_name LIKE 'Number of Deadlocksc%'; --查询当前阻塞 WITH CTE_SID ( BSID, SID, sql_handle ) AS ( SELECT blocking_session_id , session_id , sql_handle FROM sys.dm_exec_requests WHERE blocking_…