2010-01-14 17 views
0

當您右鍵單擊數據庫時,報告...磁盤使用情況,我收到報告。由於我的權限有限,因此我只能看到顯示「事務日誌空間使用情況」的頂部,這個數字本身可能對我有用。SSMS如何獲取事務日誌的使用情況?

但是,後來我收到有關無權運行DBCC showfilestats的錯誤消息,而且我也無法訪問sys.dm_os_performance_counters或DBCC SQLPERF('logspace')。

如果我只能得到最高的數字,那就很有用。不幸的是,我不能運行探查,當然,所以我不知道什麼命令或查詢它的發行,甚至獲得這些數據......

回答

1

我自己的SSMS的磁盤使用情況報告的事件探查器捕獲顯示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'' 
+0

謝謝,我想它必須以某種方式獲得特權。 – 2010-01-14 20:07:34