Grundlegendes zur Größe von Dateien mit geringer Dichte in Datenbanksnapshots
In einem Datenbanksnapshot werden zum Speichern von Daten eine oder mehrere Dateien mit geringer Datendichte verwendet. Beim Erstellen von Datenbanksnapshots werden Dateien mit geringer Dichte mithilfe der Dateinamen in der CREATE DATABASE-Anweisung erstellt. Diese Dateinamen werden in der physical_name-Spalte in sys.master_files gespeichert.
Hinweis: |
---|
In sys.database_files (sowohl in der Quelldatenbank wie auch in einem Snapshot) enthält die physical_name-Spalte immer die Namen der Quelldatenbankdateien. |
Dateien mit geringer Dichte sind ein Feature des NTFS-Dateisystems. Anfangs enthält eine Datei mit geringer Dichte keine Benutzerdaten. Zudem ist der Datei kein Speicherplatz für Benutzerdaten zugeordnet. Allgemeine Informationen zum Verwenden von Dateien mit geringer Dichte in Datenbanksnapshots sowie zum Wachstum von Datenbanksnapshots finden Sie unter Funktionsweise von Datenbanksnapshots.
Unmittelbar nach dem Erstellen beanspruchen Dateien mit geringer Dichte nur wenig Speicherplatz. Während des Schreibens von Daten in diese Datei wird durch NTFS schrittweise der entsprechende Speicherplatz zugeordnet. Grundsätzlich können Dateien mit geringer Dichte durchaus sehr umfangreich werden. Wenn der Speicherplatz für einen Datenbanksnapshot nicht mehr ausreicht, wird dieser als fehlerverdächtig gekennzeichnet und muss gelöscht werden. Dies hat jedoch keine Auswirkungen auf die Quelldatenbank. Alle Vorgänge werden weiterhin normal ausgeführt.
Dateien mit geringer Dichte wachsen in 64 KB-Schritten, weshalb die Größe einer Datei mit geringer Dichte auf der Festplatte immer einem Vielfachen von 64 KB entspricht. Der letzte 64 KB-Schritt umfasst eine bis acht Seiten mit je 8 KB. Dies hängt davon ab, wie viele Seiten aus der Quelldatenbank kopiert wurden. Das bedeutet, dass die durchschnittliche Größe einer Datei mit geringer Dichte immer leicht über dem eigentlich für die Seiten erforderlichen Speicherplatz liegt.
- So ermitteln Sie die tatsächliche Größe einer Datei mit geringer Dichte
Wenn Sie ermitteln möchten, wie viele Bytes auf der Festplatte zurzeit durch die einzelnen Dateien mit geringer Dichte des Snapshots beansprucht werden, verwenden Sie die System-Tabellenwertfunktion fn_virtualfilestats. Die in einer Datei aktuell enthaltene Bytezahl wird in der BytesOnDisk-Spalte zurückgegeben. Diese Funktion verwendet die Werte database_id und file_id. Die Datenbank-ID des Snapshots und die Datei-IDs der darin enthaltenen einzelnen Dateien mit geringer Dichte werden in der sys.master_files-Katalogsicht angezeigt. Weitere Informationen finden Sie unter sys.master_files (Transact-SQL) und fn_virtualfilestats (Transact-SQL).
Zum Anzeigen des Speicherplatzes, der durch eine Datei mit geringer Dichte in Anspruch genommen wird, können Sie alternativ auch in Microsoft Windows mit der rechten Maustaste auf Eigenschaften klicken und den Wert unter Größe auf Datenträger ablesen. - So ermitteln Sie die maximale Größe einer Datei mit geringer Dichte
Eine Datei mit geringer Dichte kann maximal die Größe der Quelldatenbankdatei erreichen, die zum Zeitpunkt der Snapshoterstellung festgelegt wurde. Zur Ermittlung dieser Größe stehen Ihnen die folgenden Alternativen zur Auswahl:- Verwenden Sie die dir-Befehle an der Eingabeaufforderung von Windows.
- Wählen Sie die Datei mit geringer Größe aus, öffnen Sie in Windows das Dialogfeld Eigenschaften der Datei, und lesen Sie den Wert für die Größe ab.
- Wählen Sie entweder in sys.database_files im Datenbanksnapshot oder in sys.master_files die Spalte für die Größe aus. Der Wert in der size-Spalte von sys.database_files oder sys.master_files gibt den maximal durch einen Snapshot verwendbaren Speicherplatz in SQL-Seiten an. Dieser Wert entspricht dem Feld Größe in Windows. Der einzige Unterschied besteht darin, dass hierbei die Anzahl der SQL-Seiten in der Datei angegeben wird. Die Größe in Bytes kann daraus wie folgt errechnet werden:
( number_of_pages * 8192)
Siehe auch
Konzepte
Datenbanksnapshots
Funktionsweise von Datenbanksnapshots
Andere Ressourcen
fn_virtualfilestats (Transact-SQL)
sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)