虚拟日志文件 (VLF) 碎片

AA.*_*.SC 6 sql-server-2008 sql-server sql-server-2008-r2 transaction-log

我有一个包含 160 个 VLF 的数据库。如何确定 VLF 是否碎片化?此外,我如何找到碎片的百分比?

我想确认的另一件事是:对于 SQL Server 虚拟日志文件中新添加的块,以下 3 条语句是否始终正确?

  1. 块小于 64MB 和高达 64MB = 4 VLF
  2. 大于 64MB 且高达 1GB 的块 = 8 个 VLF
  3. 大于 1GB 的块 = 16 个 VLF

Dam*_*ods 1

我不会纠结于 VLF 的数量,尤其是 160 个 VLF。如果 VLF 达到 1000 秒,那么我会将其列入要处理的事项列表中,因为在 24x7 环境中这可能会很痛苦。

数据库日志的碎片不应该成为问题,因为它是连续的。如果它以非常小的块增长,则等待维护窗口,备份日志,将其减少到几 MB,然后增加合理大小的块。这些将取决于日志的预计大小。

链接了关于 VLF 的精彩解释,清晰简洁(它还引用了 VLF 的大小来回答您的块问题)

http://adventuresinsql.com/2009/12/a-busyaccidental-dbas-guide-to-managing-vlfs/