如何在不运行 dbcc loginfo 的情况下找到 SQL 2005 数据库的 VLF 计数?

sh-*_*eta 5 sql-server-2005

是否可以在不运行 DBCC LOGINFO 的情况下在数据库的事务日志中找到 VLF 的数量?当计数是我的 t-sql 脚本需要从中获取的唯一信息时,DBCC LOGINFO 似乎有点沉重和冗长。

SQL*_*tar 5

我去检查了我绑定到 Excel 电子表格的 POSH 脚本:

http://www.simple-talk.com/sql/database-administration/monitoring-sql-server-virtual-log-file-fragmentation/

您提到 DBCC LOGINFO 是“详细”的,这让我想问,您是否尝试过使用 WITH NO_INFOMSGS 选项?


Sql*_*CID 3

我不相信还有其他方法;你总是可以做这样的事情:

   CREATE TABLE #dbcc_out 
                      (FileID varchar(3), 
                       FileSize numeric(20,0),
                       StartOffset bigint, 
                       FSeqNo bigint, 
                       Status char(1),
                       Parity varchar(4), 
                       CreateLSN numeric(25,0))

    INSERT INTO #dbcc_out                  EXEC ('DBCC LOGINFO')

    select count(*)  from #dbcc_out
Run Code Online (Sandbox Code Playgroud)