收缩日志文件
SQL Server备份与日志命令
-- First take a log backup so the log can be truncated (FULL model):
BACKUP LOG [Customer] TO DISK = N'D:\Backup\Customer_log_pre_shrink.trn' WITH COMPRESSION;
-- Find the logical name of the log file:
SELECT name, type_desc FROM sys.database_files WHERE type_desc = 'LOG';
-- Shrink (target 2048 MB):
USE [Customer];
DBCC SHRINKFILE (N'Customer_log', 2048);作用
减小事务日志文件的物理大小,并将空间归还给操作系统。
适用场景
日志在一次性异常增长(大事务/索引重建)后一直保持膨胀时。
注意
危险/注意:例行收缩是不良做法;日志再次增长期间性能下降,且 VLF 碎片增加。先执行日志备份,否则大小不会下降。只收缩不必要增长的日志文件,而不是数据文件。之后一次性将其增长到合适的大小。