【问题标题】:How does SSMS get the transaction log usage?SSMS 如何获取事务日志使用情况?
【发布时间】:2010-01-14 19:19:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: sql-server sql-server-2005 ssms transaction-log


    【解决方案1】:

    Profiler 捕获我自己的 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''
    

    【讨论】:

    • 谢谢,我想它必须以某种方式获得提升的权限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    相关资源
    最近更新 更多