微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从sql server上的一个表中删除8,500,000条记录

删除活动
其中unt_uid为null

将是最快的方式,但没有人可以访问数据库/表,直到这个语句完成,所以这是一个不要去.

我定义了一个光标,以便在工作时间内完成此任务,但无论如何,对生产力的影响是很大的.
那么如何删除这些记录就能保证这个数据库的正常使用?

它是32位Win2003上的sql-2005服务器.第二个问题是:你估计这个工作需要多长时间(6小时或60小时)? (是的,我知道这取决于负载,但假设这是一个小企业的环境)

解决方法

你可以用块来做.例如,每10秒执行一次:
delete from activities where activityid in 
  (select top 1000 activityid from activities where unt_uid is null)

显然定义了行数(我任意选择1000)和间隔(我选择了10秒),这对你的应用来说是最有意义的.

原文地址:https://www.jb51.cc/mssql/75237.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐