SQL Server - 壓縮交易紀錄檔

當我們在做DB Table的更新、刪除時,伴隨而來的就是交易紀錄檔的增長,有時候交易記錄

檔最後甚至會比實體的資料檔來的大很多倍,因此以本機來還原資料庫時很占硬碟空間! 因此

在這邊以官網提到的指令來壓縮交易紀錄檔達到瘦身的效果。

SQL語法使用環境為:SQL Server 2008 R2

在資料庫的操作介面,針對DB按右鍵 => 屬性內容 => 檔案,可以得到下面的畫面:


從中可以得知資料列資料、紀錄檔案的檔案路徑及邏輯名稱、檔案名稱等資訊

檔案如下:從中發現該DB目前的ldf檔已經比資料列大將近五倍的大小


因此,以該DB為例來進行記錄檔的壓縮處理,指令如下:

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

首先使用alter指令所針對的tableName為當下的DB NAME,而DBCC指令內的logic_name

為邏輯名稱(第一張圖有帶到,XXX_log)

PS. 如果還原了兩顆相同的DB,各自於還原命名為不同的名稱,則其邏輯名稱還是相同的

執行後結果如下圖所示:


留言