-- 1. 截斷記錄 (簡易復原模式下等效)
BACKUP LOG Database_Name WITH NO_LOG;
-- 或
BACKUP LOG Database_Name WITH TRUNCATE_ONLY;
-- 2. 縮減資料庫 (所有檔案)
DBCC SHRINKDATABASE (Database_Name [, target_percent]);
-- 3. 或縮減單一記錄檔
DBCC SHRINKFILE (File_ID [, target_size_MB]);
-- 取得 File_ID: SELECT FILE_ID('Log_Logical_Name');
參數 NOTRUNCATE 僅移動頁面不釋放空間;TRUNCATEONLY 僅釋放檔案末端未使用空間。
EXEC sp_detach_db 'YourDB', 'true'; (跳過更新統計資料).ldf 記錄檔。EXEC sp_attach_single_file_db 'YourDB', 'D:\Data\YourDB_Data.mdf';風險:未提交交易遺失、資料庫損壞無法附加、複寫/鏡像/記錄傳送中斷。嚴禁用於生產環境核心資料庫。
無法。SQL Server 採用預寫式記錄 (WAL) 保證 ACID,所有資料修改必須先寫入記錄。唯有大量載入 (BULK INSERT、SELECT INTO、BCP、INSERT...SELECT 搭配 TABLOCK、最小記錄模式) 可最小化記錄量。
客戶每日 DELETE 全表再匯入,DELETE 逐列記錄產生大量記錄。
改善:改用 TRUNCATE TABLE (最小記錄、釋放頁面) 或 DROP/CREATE 資料表,搭配簡易復原模式,記錄量驟降 90% 以上。
Auto Shrink = OFF,改用維護計畫定期 DBCC SHRINKFILE 至合理大小。DBCC SQLPERF(LOGSPACE),設定警示。