[SQL]交易記錄檔 LDF 太大,該如何處理?

  • 77657
  • 0
  • 2011-03-24

[SQL]交易記錄檔 LDF 太大,該如何處理?

 

2011/3/24 跟前輩請教 ldf 過大是否會影響 SQL Server 效能,結論是會影響,需要定期做裁切與備份

 

一、問題描述

SQL Server 資料庫使用久了,交易記錄檔 LDF 會越來越大,該如何處理?

我們可以透過 DBCC SHRINKFILE 壓縮目前資料庫之指定資料或記錄檔的大小,或藉由將資料從指定檔案移到同一檔案群組中的其他檔案的方式來清除檔案 (讓檔案可以從資料庫中移除)。檔案可以壓縮成小於當初建立時所指定的大小。這會將檔案大小下限重設為新值。

 

二、方法

參考 MSDN 對於 DBCC SHRINKFILE (Transact-SQL) 的說明,有提供一些範例,使用其中的 [將資料檔壓縮為指定的目標大小]

將 MESWIPDB 使用者資料庫中名為 MESWIPDB_log 之資料檔大小壓縮成 2 MB。請先將復原模式設定為簡易,壓縮後再設定回完整。


USE MESWIPDB;
GO
DBCC SHRINKFILE (MESWIPDB_log, 2);
GO

 

將復原模式切換為簡易,壓縮後,再將復原模式切換為完整 


USE MESWIPDB;
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE MESWIPDB
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (MESWIPDB_Log, 1);
GO
-- Reset the database recovery model.
ALTER DATABASE MESWIPDB
SET RECOVERY FULL;
GO

執行結果

 

觀察  LDF 檔案大小,變為 2048 KB。

 

三、相關參考與連結

黃昏的甘蔗 - [SQL] 交易記錄檔 LDF 太大 (趴兔) - 使用 DBCC Shrinkfile -

黃昏的甘蔗 - [SQL] 交易記錄檔 LDF 太大