2009-12-16 15 views
9

Jak uzyskać bieżący rozmiar dziennika transakcji? Jak uzyskać limit rozmiaru?TSQL: Jak uzyskać rozmiar dziennika transakcji?

Chciałbym to monitorować, aby ustalić, jak często trzeba wykonać kopię zapasową dziennika transakcji.

Zwykle mam problem z dziennikiem transakcji podczas wykonywania dużych operacji.

Odpowiedz

14

oparciu o SQL Server 2005, spróbuj tego

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 

Zmień YourDB do nazwy bazy

dla całkowitego wszystkich rozmiarach baz spróbować DBCC SQLPERF

DBCC SQLPERF (LOGSPACE) 

To powinno działać w SQL 2000/2005/2008

+0

Dzięki! Dokładnie to, czego szukałem! –

+0

Dlaczego funkcja size_in_mb nie jest ustawiona na 0 podczas tworzenia kopii zapasowej dziennika transakcji? –

+0

Po utworzeniu kopii zapasowej dziennika transakcji, Dunno zmusiłeś bazę danych do zwolnienia miejsca? We właściwościach bazy danych jaki rozmiar pokazuje dziennik transakcji? – kevchadders

1

Jeśli chcesz monitorować to w czasie rzeczywistym, spróbuj Monitora wydajności (perfmon) podczas wykonywania tych dużych operacji.

Perfmon może być używany w wielu różnych scenariuszach.

Dowiedz się więcej z Technet.