Datenbankdateien: Kapazität vor Autogrowth planen
Unterscheiden Sie Dateigröße, internen Freiraum und Volume-Kapazität und wählen Sie nachvollziehbare Wachstumsschritte und Alarme.
Eine Datenbank kann Platzmangel erreichen, obwohl ihre Datei klein wirkt. Umgekehrt kann ein großer Dateiumfang einen Plattenalarm auslösen, obwohl intern viel Platz wiederverwendbar ist. Dateizuordnung, Datennutzung und Dateisystemkapazität beantworten verschiedene Fragen. Eine belastbare Planung benötigt alle drei Größen.
Die Zuordnung richtig lesen
Die Abfrage zeigt Dateigröße und näherungsweise belegte Seiten der aktuellen Datenbank. FILEPROPERTY SpaceUsed beschreibt intern zugeordnete Seiten, nicht freien Betriebssystemplatz und nicht die logische Nutzdatenmenge. Für das Transaktionslog sind eigene Messungen und Wiederverwendungsprüfungen erforderlich.
SELECT name,type_desc,size/128.0 AS AllocatedMB,
CASE WHEN type=0 THEN FILEPROPERTY(name,'SpaceUsed')/128.0 END AS UsedMB,
CASE WHEN type=0 THEN (size-FILEPROPERTY(name,'SpaceUsed'))/128.0 END AS InternalFreeMB,
is_percent_growth,growth,
CASE WHEN is_percent_growth=0 THEN growth/128.0 END AS FixedGrowthMB,
max_size
FROM sys.database_files;
Prozentuales Wachstum hängt von der aktuellen Dateigröße ab. Zehn Prozent einer kleinen Datei sind ein anderer Vorgang als zehn Prozent einer mehrere Terabyte großen Datei. Ein fester Schritt macht die nächste Anforderung berechenbarer. Einen universell passenden Megabytewert gibt es dennoch nicht.
Prüfen Sie physische Kapazität separat. Die Volume-Abfrage kann dasselbe Volume mehrfach zeigen. Addieren Sie freien Platz deshalb nicht je Datei. Andere Datenbanken und Anwendungen können dasselbe Volume verwenden. Bei virtualisiertem Speicher ist die sichtbare Dateisystemreserve außerdem nur eine Kapazitätsebene.
SELECT f.name,v.volume_mount_point,
v.total_bytes/1073741824.0 AS VolumeGB,
v.available_bytes/1073741824.0 AS AvailableGB
FROM sys.database_files AS f
CROSS APPLY sys.dm_os_volume_stats(DB_ID(),f.file_id) AS v;
Autogrowth als Reserve behandeln
Dimensionieren Sie Dateien für den erwarteten kurzfristigen Bedarf vor und behalten Sie Autogrowth als Schutz gegen Prognosefehler. Viele kleine Erweiterungen verursachen Aufwand und können Arbeit unterbrechen. Sehr große Schritte dauern möglicherweise länger oder verbrauchen Reserven anderer Dateien. Verwenden Sie beobachtete Wachstumsrate, Dauer und Kapazität als Entscheidungsgrundlage.
Daten- und Logdateien verhalten sich unterschiedlich. Freier interner Datenplatz kann neue Zuordnungen ohne Dateierweiterung bedienen. Im Log können lange Transaktionen, fehlende erforderliche Logsicherungen oder andere Wiederverwendungsgründe Platz festhalten. Zusätzliche Kapazität verschafft Zeit, beseitigt aber die eigentliche Ursache nicht.
Instant File Initialization kann unter passenden Bedingungen die Dateninitialisierung beschleunigen. Es schafft keinen Speicher und entfernt nicht sämtliche Arbeit. Übertragen Sie sein Verhalten nicht pauschal auf Logwachstum unterschiedlicher Versionen und Größen. Messen Sie den entsprechenden Vorgang in einer vergleichbaren Umgebung.
Vor dem nächsten Engpass alarmieren
Überwachen Sie internen Freiraum, Volume-Reserve, Wachstumsrate, maximale Dateigröße und fehlgeschlagene Erweiterungen. Schätzen Sie die verbleibende Zeit bei normalem und maximalem Bedarf. Ein kleiner Prozentsatz auf einem riesigen Volume kann reichen, während ein großer Prozentsatz auf einem kleinen Volume schnell verbraucht ist.
Berücksichtigen Sie geplante Operationen. Indexaufbau, Rebuilds, Massenimporte und Staging können mehr Platz als der Normalbetrieb benötigen. Daten-, Log- und tempdb-Anforderungen können gleichzeitig auftreten. Eine Wartungsprüfung nur der Zieldatei übersieht solche parallelen Anforderungen.
Vermeiden Sie regelmäßiges Schrumpfen mit anschließendem Wiederwachsen. Nach jeder Wartung zurückgegebener Platz wird häufig bald erneut benötigt. Das erzeugt zusätzliche Arbeit und zerstört eine stabile Planung. Bewerten Sie Shrink nur bei einer begründeten dauerhaften Verringerung separat.
Vergleichen Sie Prognose und tatsächliche Zuordnung über die Zeit. Speichern Sie Dauer und Auswirkung von Wachstumsvorgängen, nicht nur deren Erfolg. Ein Alarm sollte betroffene Datei oder Volume, den nächsten erwarteten Schritt und verbleibende Reaktionszeit nennen. Prüfen Sie zusätzlich, ob ein konfiguriertes MAXSIZE weiteres Wachstum verhindert, obwohl auf dem Volume noch Platz vorhanden ist.
Ein Wachstumsschritt von null bedeutet, dass automatische Erweiterung deaktiviert ist. Prüfen Sie diese Einstellung ausdrücklich.
Technische Referenzen: Microsoft Learn: Database files · Microsoft Learn: Volume statistics.