SQL 2005: Können wir bestimmen, um wie viel der Wiederherstellungsindex-Wartungsjob Datenbankprotokolldateien vergrößern kann?

10

Wenn sich auf SQL Server 2005 alle Datenbanken im Vollmodus befinden (mit stündlichen Transaktionsprotokollsicherungen), kann dann festgestellt werden, ob durch die Neuerstellung aller Indizes einer Datenbank die Protokolldatei einer Datenbank vergrößert werden kann? Und wie viel kann es wachsen?

Wenn es keine klare Antwort gibt, wären Anweisungen sehr willkommen.

Danke im Voraus.

Manjot
quelle

Antworten:

9

Ja, Sie sollten sich das hervorragende Whitepaper zu diesem Thema ansehen, obwohl es sich auf die Neuerstellung des Online-Index bezieht. Es enthält immer noch viele gute Informationen

http://technet.microsoft.com/en-us/library/cc966402.aspx

Wenn die Protokolldateien automatisch wachsen, können Sie diese Informationen nach Abschluss der Aktion mithilfe der Standardablaufverfolgung finden.

DECLARE @filename VARCHAR(255) 
SELECT @FileName = SUBSTRING(path, 0, LEN(path)-CHARINDEX('\', REVERSE(path))+1) + '\Log.trc'  
FROM sys.traces   
WHERE is_default = 1;  

--Check if the data and log files auto-growed. Look for tempdb, log files etc.
SELECT 
    gt.ServerName
    , gt.DatabaseName
    , gt.TextData
    , gt.StartTime
    , gt.Success
    , gt.HostName
    , gt.NTUserName
    , gt.NTDomainName
    , gt.ApplicationName
    , gt.LoginName
FROM [fn_trace_gettable](@filename, DEFAULT) gt 
JOIN sys.trace_events te ON gt.EventClass = te.trace_event_id 
WHERE EventClass in ( 92, 93 ) --'Data File Auto Grow', 'Log File Auto Grow'
ORDER BY StartTime; 
--
Sankar Reddy
quelle
7

Es ist nicht nur möglich zu erkennen, ob Index-DDL-Operationen die Protokolldatei erhöhen, es ist auch die Standardaktionszeile. Alle Indexvorgänge werden in einer Datenbank protokolliert, die das vollständige Wiederherstellungsmodell verwendet.

Ich würde Ihnen raten, den folgenden Artikel über MSDN zu lesen: Ermitteln der Anforderungen an den Indexspeicherplatz .

Aus dem 3. Kapitel - Transaktionsprotokoll-Speicherplatz für Indexoperationen dieses Artikels werde ich zitieren:

" Große Indexoperationen können große Datenlasten erzeugen, die dazu führen können, dass das Transaktionsprotokoll schnell gefüllt wird. Um sicherzustellen, dass die Indexoperation zurückgesetzt werden kann, kann das Transaktionsprotokoll nicht abgeschnitten werden, bis die Indexoperation abgeschlossen ist, jedoch das Protokoll kann während der Indexoperation gesichert werden. Daher muss das Transaktionsprotokoll über ausreichend Speicherplatz verfügen, um sowohl die Indexoperationstransaktionen als auch alle gleichzeitigen Benutzertransaktionen für die Dauer der Indexoperation zu speichern.Dies gilt sowohl für Offline- als auch für Online-Indexvorgänge. Da während eines Offline-Indexvorgangs nicht auf die zugrunde liegenden Tabellen zugegriffen werden kann, gibt es möglicherweise nur wenige Benutzertransaktionen und das Protokoll wächst möglicherweise nicht so schnell. Online-Indexoperationen verhindern nicht die gleichzeitige Benutzeraktivität. Daher können umfangreiche Online-Indexoperationen in Kombination mit signifikanten gleichzeitigen Benutzertransaktionen zu einem kontinuierlichen Wachstum des Transaktionsprotokolls führen, ohne dass das Protokoll abgeschnitten werden kann. ""

Marian
quelle