如何缩小大型 LDF

Flo*_*ian 0 performance sql-server shrink sql-server-2016

我有一个带有 100Gb MDF 和 4Gb LDF 的 SQL2016 DB 的客户端。数据库设置为简单。我无法将 LDF 缩小到最低限度。如何将 LDF 缩小到正常水平?

此设置和文件大小是否会影响性能?

alr*_*roc 5

在尝试缩小日志文件之前,您需要了解它是否有问题。可能不是。

日志很可能是那个大小,因为它需要增长到那个大小,这意味着如果你缩小它,它将来很可能会增长到那个大小——而且日志增长会暂时减缓导致它增长的任何事务。

由于它只有 4GB 并且处于SIMPLE恢复状态,我建议您只保留日志原样,并可能将自动增长调整为固定的 1GB 块。

如果你只是必须收缩日志,你可以这样做DBCC SHRINKFILE,使用TRUNCATEONLY选项。例子:

DBCC SHRINKFILE (Database_log_file_name, 1);

这将一直截断文件直到最后一个打开的事务,如果数据库空闲或大部分空闲,这将是整个事情。但首先请确保您已按上述方式设置自动增长,您甚至可能希望将日志的大小重新调整为您认为需要的大小。

但同样...... 100GB 数据库上的 4GB 不是什么大问题。我只是让它留在那里。