【问题标题】:TSQL: How do I get the size of the transaction log?TSQL:如何获取事务日志的大小?
【发布时间】:2010-12-27 03:50:50
【问题描述】:

如何获取事务日志的当前大小?如何获得大小限制?

我想对此进行监控,以便确定需要多久备份一次事务日志。

我在执行大型操作时通常会遇到事务日志的问题。

【问题讨论】:

    标签: sql-server transaction-log


    【解决方案1】:

    基于 SQL Server 2005,试试这个

    SELECT (size * 8)/1024.0 AS size_in_mb,
      CASE WHEN max_size = -1 THEN 9999999   -- Unlimited growth, so handle this how you want
       ELSE (max_size * 8) / 1024.0
            END AS max_size_in_mb
    FROM <YourDB>.sys.database_files
    WHERE data_space_id = 0   -- Log file
    

    YourDB 更改为您的数据库名称

    对于所有数据库大小的总体尝试DBCC SQLPERF

    DBCC SQLPERF (LOGSPACE)
    

    这应该适用于 SQL 2000/2005/2008

    【讨论】:

    • 谢谢!正是我一直在寻找的!
    • 为什么我备份事务日志时 size_in_mb 没有设置为 0?
    • 不知道,备份事务日志后,你有没有缩水数据库腾出空间?在数据库的属性中,它显示事务日志的大小是多少?
    【解决方案2】:

    如果您想实时监控它,请在执行这些大型操作时尝试性能监控器 (perfmon)。

    Perfmon 可用于许多不同的场景。

    Technet了解更多信息。

    【讨论】:

      猜你喜欢
      • 2011-05-10
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多