Overblog Folge diesem Blog
Edit post Administration Create my blog
Blog von Olaf Helper

Auswertung der Log-File Größe

13. März 2009 , Geschrieben von Olaf Helper Veröffentlicht in #T-SQL

Die Transaktionsprotokolle von MS SQL Server Datenbank wachsen stetig an, bis sie wieder gesichert werden; man kennt das Spiel ja. Ebenso, das man ein Auge auf die Größe der Dateien und den noch freien Platz haben sollte.
Dazu gibt es den Standard DBCC Befehl

DBCC SQLPERF(LOGSPACE);


Das Ergebnis ist soweit nett & informative, bei vielen Datenbanken etwas unübersichtlich und so erst mal nicht zum Auswerten geeignet. Will man das Ergebnis analysieren, geht man den kleinen Umweg über eine temporäre Tabelle, die man mit dem DBCC Ergebnis füllt; mit der kann man dann weiterarbeiten, hier ein Beispiel als T-SQL Script dazu:

 
-- Ab Microsoft SQL Server 2000
 -- Auflisten aller Logfiles mit der Größe in MB 
 -- Kann in jeder beliebigen DB für alle ausgeführt werden 
   
 -- Temporäre Tabelle für das Ergebnis von DBCC anlegen 
 CREATE TABLE #tmpLogSpace 
  (DBName sysname,  
  LogSize money, 
  LogUsage money, 
  Status int 
 ) 
 GO 
 -- DBCC 
 INSERT INTO #tmpLogSpace 
 EXEC ('DBCC SqlPerf(LogSpace)') 
 GO 
   
 -- Nun kann analysiert werden 
 -- Für den Überblick eine Zusammenfassung 
 SELECT COUNT(*) AS CountLogFiles, SUM(LogSize) AS TotalLogMB,  
  MAX(LogUsage) AS MaxLogUsage, AVG(LogUsage) AS AvgLogUsage  
 FROM #tmpLogSpace; 
   
 -- Die einzelnen Logs absteigend sortiert nach Größe MB 
 -- Alternative: ORDER BY LogUsage DESC 
 -- für die "vollsten" Logs 
 SELECT DBName, LogSize, LogUsage 
 FROM #tmpLogSpace  
 ORDER BY LogSize DESC, LogUsage DESC, DBName 
 GO 
   
 -- Temp abräumen 
 DROP TABLE #tmpLogSpace 
 GO 

Diesen Post teilen

Repost 0

Kommentiere diesen Post