经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MS SQL Server » 查看文章
SqlServer极速删除百万级别数据
来源:cnblogs  作者:沙奇码丶  时间:2020/12/28 9:48:00  对本文有异议

百万级别数据表,进行有条件的数据删除,这个时候采用delete from的一次性删除的方法是很不明智的:

1、delete操作会被完整记录到日志里,它需要大量空间和时间

2、如果删除中间发生中断,一切删除会回滚(在一个事务里)

3、同时删除多行,记录上的锁也许会被提升为排它表锁,从而阻碍操作完成之前有对这个表的操作(有时候会妨碍正常的业务)所以一般采取分批删除的方法

所以,通过分批次地删除数据可以大大提升删除效率,缩短删除时间:

  1. declare @perCount int;
  2. set @perCount = 6000;
  3. while 1=1
  4. begin
  5. delete top(@perCount) from where CrtDate < '2020-12-23';
  6. if(@@rowcount<@perCount) break;
  7. end

 

原文链接:http://www.cnblogs.com/seanyan/p/14177215.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号