2017-02-14 77 views
3

我對日誌傳送不太熟悉,我需要從包含71百萬條記錄的表中刪除7000萬條記錄。在使用日誌傳送時刪除數百萬條記錄 - SQL Server

我的問題是如何將日誌傳送的反應,如果我做到以下幾點:

  1. 複製萬條記錄,我想保留,在新表
  2. 截斷原始表(截斷表OriginalTable)
  3. 插入原始表的記錄

我們已經爲日誌空間有限萬元。什麼會被記錄和發貨?

感謝

+0

我假設你應該從主數據庫中刪除,並且日誌傳送將反映更改 –

+0

您也可以創建一個新表,將其命名爲Shipping_NEW或其他內容,並將您希望保留的記錄直接插入到生產表中。然後將舊錶重新命名爲Shipping_BAK ...將Shipping_NEW重命名爲Shipping(使其成爲生產表)。這可以節省您做兩次插入的日誌空間。名義上,如果你問我,但因爲你似乎擔心這是另一種選擇。然後你可以放下或保留你的舊桌子。 – scsimon

回答

3

這應該是很好 - 只要你不截斷日誌,只是截斷表,日誌傳送應該跟上。

截斷記錄,只是有效的記錄(見https://dba.stackexchange.com/questions/55834/what-does-a-truncate-table-write-to-the-log-file-in-sql-server/55882)。您將獲得百萬條插入記錄,但這可能與您所能獲得的效率一樣高。

+0

謝謝,根據你的回答,我有信心繼續我的程序。我一切順利,日誌文件只有225MB,用於截斷並插入近百萬條記錄。 – freddoo