Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
In diesem Thema wird beschrieben, wie Sie mit Transact-SQL überprüfen, ob eine SQL Server-Datenbankdatei eine Sparsedatei ist, und wie Sie die tatsächliche und maximale Größe ermitteln. Sparsedateien, die ein Feature des NTFS-Dateisystems sind, werden von SQL Server-Datenbankmomentaufnahmen verwendet.
Hinweis
Beim Erstellen von Datenbank-Snapshots werden Sparse-Dateien unter Verwendung der in der CREATE DATABASE Anweisung angegebenen Dateinamen erstellt. Diese Dateinamen werden in der Spalte physical_name in sys.master_files gespeichert. In sys.database_files (sowohl in der Quelldatenbank wie auch in einer Momentaufnahme) enthält die Spalte physical_name immer die Namen der Quelldatenbankdateien.
Überprüfen, ob eine Datenbankdatei eine Sparse-Datei ist
Auf der Instanz von SQL Server:
Wählen Sie die Spalte is_sparse entweder aus sys.database_files in der Datenbankmomentaufnahme oder aus sys.master_files aus. Der Wert gibt wie folgt an, ob die Datei eine Sparsedatei ist:
1 = Die Datei ist eine Sparsedatei.
0 = Die Datei ist keine Sparsedatei.
Ermitteln der tatsächlichen Größe einer Datei mit geringer Dichte
Hinweis
Sparse-Dateien wachsen in 64-KB-Schritten; daher ist die Größe einer Sparse-Datei auf dem Datenträger immer ein Vielfaches von 64 KB.
Um die Anzahl der Bytes anzuzeigen, die jede Sparse-Datei eines Snapshots derzeit auf dem Datenträger belegt, fragen Sie die Spalte size_on_disk_bytes in der dynamischen Verwaltungsansicht sys.dm_io_virtual_file_stats von SQL Server ab.
Um den von einer Sparse-Datei belegten Speicherplatz anzuzeigen, klicken Sie in Microsoft Windows mit der rechten Maustaste auf die Datei, klicken Sie auf Eigenschaften, und sehen Sie sich den Wert Größe auf Datenträger an.
Ermitteln der maximalen Größe einer Datei mit geringer Dichte
Die maximale Größe, auf die eine Sparse-Datei anwachsen kann, entspricht der Größe der zugehörigen Quelldatenbankdatei zum Zeitpunkt der Snapshot-Erstellung. Zur Ermittlung dieser Größe stehen Ihnen die folgenden Alternativen zur Auswahl:
Verwenden der Windows-Eingabeaufforderung:
Verwenden Sie die Windows-dir-Befehle.
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.
Auf der Instanz von SQL Server:
Wählen Sie die size-Spalte entweder aus sys.database_files im Datenbank-Snapshot oder aus sys.master_files aus. Der Wert in der size -Spalte gibt den maximal durch eine Momentaufnahme 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:
( Seitenanzahl * 8192)
Beispiel
Das folgende Skript zeigt für jede Sparse-Datei den belegten Speicherplatz auf dem Datenträger in Kilobyte an. Das Skript zeigt außerdem die maximale Größe in Megabyte an, auf die eine Sparse-Datei anwachsen kann. Führen Sie das Transact-SQL-Skript in SQL Server Management Studio aus.
SELECT DB_NAME(sd.source_database_id) AS [SourceDatabase],
sd.name AS [Snapshot],
mf.name AS [Filename],
size_on_disk_bytes/1024 AS [size_on_disk (KB)],
mf2.size/128 AS [MaximumSize (MB)]
FROM sys.master_files mf
JOIN sys.databases sd
ON mf.database_id = sd.database_id
JOIN sys.master_files mf2
ON sd.source_database_id = mf2.database_id
AND mf.file_id = mf2.file_id
CROSS APPLY sys.dm_io_virtual_file_stats(sd.database_id, mf.file_id)
WHERE mf.is_sparse = 1
AND mf2.is_sparse = 0
ORDER BY 1;