小编典典

如何从SQL Server的一个表中删除8,500,000条记录

sql

删除unt_uid为null的活动

这将是最快的方法,但是在该语句完成之前没有人可以访问数据库/表,因此这是不可行的。

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

它是32位Win2003上的SQL-2005
Server。第二个问题是:您估计这项工作要完成多长时间(6个小时或60个小时)?(是的,我知道这取决于负载,但是假设这是一个小型企业环境)


阅读 272

收藏
2021-04-07

共1个答案

小编典典

您可以分块进行。例如,每10秒执行一次:

delete from activities where activityid in 
  (select top 1000 activityid from activities where unt_uid is null)

显然,定义行数(我任意选择1000)和间隔(我选择10秒)对您的应用程序最有意义。

2021-04-07