Sql-Server

大型刪除期間的 Sql Server 事務日誌

  • September 24, 2016

在我的工作中,我將把數百萬條記錄移動到不同的伺服器,並將它們從源伺服器中刪除。我的 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 分鐘等待下一批。

引用自:https://dba.stackexchange.com/questions/150521