sys.dm_os_volume_stats (Transact-SQL)
Dotyczy:programu SQL Server
Zwraca informacje o woluminie systemu operacyjnego (katalogu), na którym są przechowywane określone bazy danych i pliki w programie SQL Server. Użyj tej funkcji dynamicznego zarządzania, aby sprawdzić atrybuty dysku fizycznego lub zwrócić dostępne informacje o wolnym miejscu na temat katalogu.
Transact-SQL konwencje składni
Składnia
sys.dm_os_volume_stats (database_id , file_id)
Argumenty
database_id
Identyfikator bazy danych.
database_id jest int bez wartości domyślnej. Nie można NULL
.
file_id
Identyfikator pliku.
file_id jest int bez wartości domyślnej. Nie można NULL
.
Zwrócona tabela
Kolumna | Typ danych | Opis |
---|---|---|
database_id |
Identyfikator bazy danych. Nie można pustą wartość null. | |
file_id |
Identyfikator pliku. Nie można pustą wartość null. | |
volume_mount_point |
nvarchar(512) | Punkt instalacji, w którym wolumin jest zakorzeniony. Może zwrócić pusty ciąg. Zwraca wartość null w systemie Linux. |
volume_id |
nvarchar(512) | Identyfikator woluminu systemu operacyjnego. Może zwrócić pusty ciąg. Zwraca wartość null w systemie Linux. |
logical_volume_name |
nvarchar(512) | Nazwa woluminu logicznego. Może zwrócić pusty ciąg. Zwraca wartość null w systemie Linux. |
file_system_type |
nvarchar(512) | Typ woluminu systemu plików (na przykład NTFS, FAT, RAW). Może zwrócić pusty ciąg. Zwraca wartość null w systemie Linux. |
total_bytes |
bigint | Całkowity rozmiar w bajtach woluminu. Nie można pustą wartość null. |
available_bytes |
bigint | Dostępne wolne miejsce na woluminie. Nie można pustą wartość null. |
supports_compression |
tinyint | Wskazuje, czy wolumin obsługuje kompresję systemu operacyjnego. Nie można wartości null w systemie Windows i zwraca wartość null w systemie Linux. |
supports_alternate_streams |
tinyint | Wskazuje, czy wolumin obsługuje strumienie alternatywne. Nie można wartości null w systemie Windows i zwraca wartość null w systemie Linux. |
supports_sparse_files |
tinyint | Wskazuje, czy wolumin obsługuje pliki rozrzedłe. Nie można wartości null w systemie Windows i zwraca wartość null w systemie Linux. |
is_read_only |
tinyint | Wskazuje, czy wolumin jest obecnie oznaczony jako tylko do odczytu. Nie można pustą wartość null. |
is_compressed |
tinyint | Wskazuje, czy ten wolumin jest obecnie skompresowany. Nie można wartości null w systemie Windows i zwraca wartość null w systemie Linux. |
incurs_seek_penalty |
tinyint | Wskazuje typ magazynu obsługującego ten wolumin. Możliwe wartości to:0 : brak kary za wyszukiwanie na tym woluminie, zwykle wtedy, gdy urządzenie magazynujące jest PMM lub SSD1 : wyszukiwanie kary na tym woluminie, zwykle wtedy, gdy urządzenie magazynujące jest hdd2 : nie można określić typu magazynu, gdy wolumin znajduje się w ścieżce UNC lub zainstalowanych udziałachNULL : nie można określić typu magazynu w systemie operacyjnym LinuxDotyczy: SQL Server 2019 (15.x) i nowsze wersje |
Uprawnienia
Program SQL Server 2019 (15.x) i starsze wersje wymagają uprawnień VIEW SERVER STATE
na serwerze.
Program SQL Server 2022 (16.x) i nowsze wersje wymagają uprawnień VIEW SERVER PERFORMANCE STATE
na serwerze.
Przykłady
A. Zwraca łączną ilość miejsca i dostępne miejsce dla wszystkich plików bazy danych
Poniższy przykład zwraca łączną ilość miejsca i dostępne miejsce (w bajtach) dla wszystkich plików bazy danych w wystąpieniu programu SQL Server.
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. Zwraca łączną ilość miejsca i dostępne miejsce dla bieżącej bazy danych
Poniższy przykład zwraca łączną ilość miejsca i dostępne miejsce (w bajtach) dla plików bazy danych w bieżącej bazie danych.
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);