Sql-Server
大型刪除期間的 Sql Server 事務日誌
在我的工作中,我將把數百萬條記錄移動到不同的伺服器,並將它們從源伺服器中刪除。我的 DBA 設置了一個備份方案,其中每 5 分鐘進行一次更改備份。關於刪除記錄,他向我發出了警告:
…它將創建一個巨大的事務日誌,可能會導致 5 分鐘的事務日誌備份失敗…
有沒有辦法解決這個問題?
我們不知道為什麼您的事務日誌備份會失敗,但我們可以討論解決方案。他可能會擔心事務日誌膨脹,因為事務日誌會變得如此之大,以至於填滿了儲存日誌文件的驅動器。
第一個也是最簡單的解決方案:如果要將所有數據完全移出表,只需截斷表即可。這是最少記錄的。
第二:將您的 DELETE 語句拆分為批次。找到一種方法來劃分您的數據,假設批量大小為 5,000。
DELETE FROM OldDBTable WHERE ID IN (SELECT TOP 5000 ID FROM OldDBTable WHERE [Statement to define deleted data here])
如果你願意,你可能會增加批量大小。然後只需設置 a
WAITFOR DELAY '0:05:00'
等待 5 分鐘等待下一批。