我有一个大数据表。该表中有1000万条记录。什么是此查询的最佳方法 Delete LargeTable where readTime < dateadd(MONTH,-7,GETDATE())
3 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
只是一个小的更正。设置变量后必须使用COMMIT,否则WHILE将仅执行一次:
DECLARE @Deleted_Rows INT;
SET @Deleted_Rows = 1;
WHILE (@Deleted_Rows > 0)
BEGIN
BEGIN TRANSACTION
-- Delete some small number of rows at a time
DELETE TOP (10000) LargeTable
WHERE readTime < dateadd(MONTH,-7,GETDATE())
SET @Deleted_Rows = @@ROWCOUNT;
COMMIT TRANSACTION
CHECKPOINT -- for simple recovery model
END
- 3 回答
- 0 关注
- 586 浏览
添加回答
举报
0/150
提交
取消