sys.dm_os_volume_stats (Transact-SQL)
Gilt für:SQL Server
Gibt Informationen zum Betriebssystemvolume (Verzeichnis) zurück, auf dem die angegebenen Datenbanken und Dateien in SQL Server gespeichert werden. Verwenden Sie diese dynamische Verwaltungsfunktion, um die Attribute des physischen Datenträgers zu überprüfen oder um Informationen zum verfügbaren freien Speicherplatz für das Verzeichnis zurückzugeben.
Transact-SQL-Syntaxkonventionen
Syntax
sys.dm_os_volume_stats (database_id , file_id)
Argumente
database_id
Die ID der Datenbank.
database_id ist vom Datentyp intund hat keinen Standardwert. Kann nicht NULL
werden.
file_id
Die ID der Datei.
file_id ist vom Datentyp intund hat keinen Standardwert. Kann nicht NULL
werden.
Zurückgegebene Tabelle
Spalte | Datentyp | Beschreibung |
---|---|---|
database_id |
int | Die ID der Datenbank. Lässt keine Nullwerte zu. |
file_id |
int | Die ID der Datei. Lässt keine Nullwerte zu. |
volume_mount_point |
nvarchar(512) | Der Einbindungspunkt, der das Stammverzeichnis des Volumes darstellt. Kann eine leere Zeichenfolge zurückgeben. Gibt NULL unter Linux zurück. |
volume_id |
nvarchar(512) | Die ID des Betriebssystemvolumes. Kann eine leere Zeichenfolge zurückgeben. Gibt NULL unter Linux zurück. |
logical_volume_name |
nvarchar(512) | Der Name des logischen Volumes. Kann eine leere Zeichenfolge zurückgeben. Gibt NULL unter Linux zurück. |
file_system_type |
nvarchar(512) | Der Typ des Dateisystemvolumes (z. B. NTFS, FAT, RAW). Kann eine leere Zeichenfolge zurückgeben. Gibt NULL unter Linux zurück. |
total_bytes |
bigint | Die Gesamtgröße des Volumes in Bytes. Lässt keine Nullwerte zu. |
available_bytes |
bigint | Der verfügbare freie Speicherplatz auf dem Volume. Lässt keine Nullwerte zu. |
supports_compression |
tinyint | Gibt an, ob das Volume eine Komprimierung durch das Betriebssystem unterstützt. Lässt unter Windows nicht null zu und gibt null unter Linux zurück. |
supports_alternate_streams |
tinyint | Gibt an, ob das Volume alternative Datenströme unterstützt. Lässt unter Windows nicht null zu und gibt null unter Linux zurück. |
supports_sparse_files |
tinyint | Gibt an, ob das Volume Sparsedateien unterstützt. Lässt unter Windows nicht null zu und gibt null unter Linux zurück. |
is_read_only |
tinyint | Gibt an, ob das Volume derzeit als schreibgeschützt gekennzeichnet ist. Lässt keine Nullwerte zu. |
is_compressed |
tinyint | Gibt an, ob dieses Volume derzeit komprimiert ist. Lässt unter Windows nicht null zu und gibt null unter Linux zurück. |
incurs_seek_penalty |
tinyint | Gibt den Typ des Speichers an, der dieses Volume unterstützt. Dabei sind folgende Werte möglich:0 : Keine Strafe auf diesem Volume, in der Regel, wenn das Speichergerät PMM oder SSD ist1 : Suchen Sie auf diesem Volume Nach Strafe, in der Regel, wenn das Speichergerät HDD ist2 : Der Speichertyp kann nicht bestimmt werden, wenn sich das Volume auf einem UNC-Pfad oder bereitgestellten Freigaben befindet.NULL : Der Speichertyp kann unter Linux-Betriebssystem nicht bestimmt werden.Gilt für: SQL Server 2019 (15.x) und höhere Versionen |
Berechtigungen
SQL Server 2019 (15.x) und frühere Versionen erfordern VIEW SERVER STATE
Berechtigung auf dem Server.
SQL Server 2022 (16.x) und höhere Versionen erfordern VIEW SERVER PERFORMANCE STATE
Berechtigung auf dem Server.
Beispiele
A. Zurückgeben des gesamten und des verfügbaren freien Speicherplatzes für alle Datenbankdateien
Im folgenden Beispiel wird der Gesamtspeicher und der verfügbare Speicherplatz (in Byte) für alle Datenbankdateien in der SQL Server-Instanz zurückgegeben.
SELECT f.database_id,
f.file_id,
volume_mount_point,
total_bytes,
available_bytes
FROM sys.master_files AS f
CROSS APPLY sys.dm_os_volume_stats(f.database_id, f.file_id);
B. Zurückgeben des gesamten und des verfügbaren freien Speicherplatzes für die aktuelle Datenbank
Im folgenden Beispiel werden der gesamte Speicherplatz und der verfügbare freie Speicherplatz (in Bytes) für die Datenbankdateien der aktuellen Datenbank zurückgegeben.
SELECT database_id,
f.file_id,
volume_mount_point,
total_bytes,
available_bytes
FROM sys.database_files AS f
CROSS APPLY sys.dm_os_volume_stats(DB_ID(), f.file_id);