2009-12-16 2 views
9

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

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

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

ответ

14

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

+0

Спасибо! Именно то, что я искал! –

+0

Почему значение size_in_mb не равно 0 при резервном копировании журнала транзакций? –

+0

Не знаю, после резервного копирования журнала транзакций вы можете сбрасывать базу данных, чтобы освободить пространство? В свойствах базы данных какой размер показывает журнал транзакций? – kevchadders

1

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

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

Узнать больше об Technet.

Смежные вопросы