将一个更新划分为几个批次

2016-01-29 16:19 6 1 收藏

将一个更新划分为几个批次,将一个更新划分为几个批次

【 tulaoshi.com - SQLServer 】

 

问:我想以一次5,000行的方式批量更新一个大型表,但我不知道怎样分割数据。该表不包含增量数字或整数主键。怎样才能在保持良好性能的同时实现数据更新呢?

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

答:如果知道哪些行尚未被更新,您可以使用简单的谓词来排除已更新的行,ROWCOUNT设置可以帮助您批量分割数据。以下的代码清单说明了如何使用该设置:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

SET ROWCOUNT 1000
WHILE (1=1) BEGIN
   BEGIN TRANSACTION
   UPDATE...set ...,MyLastUpdate='date',...WHERE
     MyLastUpdate < 'date'
     -- 更新1000未更新行
   IF @@ROWCOUNT = 0
   BEGIN
    COMMIT TRANSACTION
    BREAK
   END
   COMMIT TRANSACTION
END

在指定的行数返回后,ROWCOUNT将使SQL Server停止查询处理。这项技术很有用,因为它避免了大量更新所致的并发命中;更新中的行数越少,更新任务使其他用户不能访问该数据的可能性就越小。结合事务日志备份,这一方法还可以使您的事务日志的大小降至最低。

如果没有识别已更新行的机制,您可以使用游标遍历所有数据并提交每个x值。但是,游标占用服务器资源的时间通常要多于基于集合的语句。

—Microsoft SQL Server开发团队

 

 

来源:http://www.tulaoshi.com/n/20160129/1498300.html

延伸阅读
标签: 雪肌精 护肤
雪肌精分几个系列:雪肌精系列 雪肌精系列是最经典的一个系列,也是最受欢迎的系列,所有产品都是蓝瓶白盖的。雪肌精系列可以补水滋润,调理出健康肌肤,针对晒后的美白,防止因干燥引致的晦暗、痘痘和紧绷,并且对淡化痘印有一定的作用。 适合肤质: 雪肌精系列的护肤品含酒精浓度比较高,所以不适合对酒精过敏的人群,敏...
标签: 微信 手机
登录微信 登录你(已经绑定了手机号)的微信,点击右上角的“┇”图标。 点击设置 在弹出的菜单中点击“设置”。 点击账号 再点击“我的账号”。 确保其它绑定设置 开始本步操作前,请确保你已经绑定了“QQ号”或设置了“微信号”(如图中所示的黄色阴影部分,两者至少有一个),如果没有请先点击“QQ号”或“微信号”进行设...
如果2张表的字段一致,并且希望插入全部数据,可以用这种方法: Code: 代码如下: INSERT INTO 目标表 SELECT * FROM
  http://dev.csdn.net/article/53/53442.shtm 如何将几个DBGRID里的内容导入同一个EXCEL表中? 在软件实际制作中,为节省开发成本和开发周期,一些软件人员通常会吧DBGrid中的数据直接导出到Excel表中,而先前能看到的函数仅仅只能在WorkBook的一个Sheet中导入数据,不支持多Sheet!。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...
标签: word
将Word2010中多个文档合并为一个   今天分享的是教你快速将word2010中多个文档合并为一个。这样可以省去你一个一个的粘贴复制的麻烦,喜欢的朋友可以学习下。 ①单击进入插入选项卡; ②然后在文本选项组中点击对象旁边的小三角,在弹出的下拉菜单中选择文件中的文字; ③接着,选择要合并到当前文档中的文件。您...

经验教程

792

收藏

92
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部