我有一个或多或少有1b记录的表,并且它将数据保存在180天内,因此我需要删除那些超过180天的记录。
首先,我只是使用delete
删除记录,花了将近1小时,然后,我每天都尝试creat table
并将数据保存到当天的表格中,{ {1}}表格超过180天。
有没有更好的方法来删除这些记录,我不认为我的第二种方式是有益的。
对不起我的英语很差,但请帮帮忙!
谢谢!
答案 0 :(得分:0)
以下解决方案可能会有所帮助。
Recovery Mode to SIMPLE
像:
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
希望它有所帮助!