0

当您右键单击数据库、报告...磁盘使用情况时,我会收到一份报告。因为我的权限有限,所以我只获得了显示“事务日志空间使用情况”的顶部部分——仅这个数字就对我有用。

但是,后来我收到有关无权运行 DBCC showfilestats 的错误消息,而且我也绝对无权访问 sys.dm_os_performance_counters 或 DBCC SQLPERF('logspace')。

如果我能得到那个最高的数字,那将很有用。不幸的是,我当然不能运行分析器,所以我不知道它发出了什么命令或查询来获取数据......

4

1 回答 1

1

我自己的 SSMS 磁盘使用报告的 Profiler 捕获显示DBCC SQLPERF(LOGSPACE)

exec sp_executesql @stmt=N'begin try 
declare @tran_log_space_usage table( 
        database_name sysname
,       log_size_mb float
,       log_space_used float
,       status int
); 

insert into @tran_log_space_usage 
exec(''DBCC SQLPERF ( LOGSPACE )'') ; 

select 1 as l1
,       1 as l2
,       log_size_mb as LogSizeMB
,       cast( convert(float,log_space_used) as decimal(10,1)) as SpaceUsage
,       ''Used'' as UsageType 
from @tran_log_space_usage 
where database_name = DB_NAME() 
UNION 
select 1 as l1 
,       1 as l2
,       log_size_mb
,       cast(convert(float,(100-log_space_used)) as decimal(10,1)) as SpaceUsage
,       ''Unused'' as UsageType 
from @tran_log_space_usage 
where database_name = DB_NAME();  
end try 
begin catch 
select -100 as l1
,       ERROR_NUMBER() as l2
,       ERROR_SEVERITY() as LogSizeMB 
,       ERROR_STATE() as SpaceUsage 
,       ERROR_MESSAGE() as UsageType 
end catch',@params=N''
于 2010-01-14T19:27:58.057 回答