TSQL: как получить размер журнала транзакций?

Как получить текущий размер журнала транзакций? Как получить ограничение по размеру?

Я хотел бы контролировать это, чтобы я мог определить, как часто мне нужно делать резервную копию журнала транзакций.

У меня обычно возникают проблемы с журналом транзакций при выполнении больших операций.

2 ответов


на основе 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


Если вы хотите контролировать его в режиме реального времени, попробуйте perfmon во время выполнения этих больших операций.

Perfmon может использоваться во многих различных сценариях.

узнайте больше в TechNet.