删除unt_uid为null的活动
这将是最快的方法,但是在该语句完成之前没有人可以访问数据库/表,因此这是不可行的。
我定义了一个游标以在工作时间内完成此任务,但无论如何对生产率的影响很大。那么如何删除这些记录,以保证该数据库的正常使用?
它是32位Win2003上的SQL-2005 Server。第二个问题是:您估计这项工作要完成多长时间(6个小时或60个小时)?(是的,我知道这取决于负载,但是假设这是一个小型企业环境)
您可以分块进行。例如,每10秒执行一次:
delete from activities where activityid in (select top 1000 activityid from activities where unt_uid is null)
显然,定义行数(我任意选择1000)和间隔(我选择10秒)对您的应用程序最有意义。