删除活动
其中unt_uid为null
其中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秒),这对你的应用来说是最有意义的.