Udostępnij za pośrednictwem


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 SSD

1: wyszukiwanie kary na tym woluminie, zwykle wtedy, gdy urządzenie magazynujące jest hdd

2: nie można określić typu magazynu, gdy wolumin znajduje się w ścieżce UNC lub zainstalowanych udziałach

NULL: nie można określić typu magazynu w systemie operacyjnym Linux

Dotyczy: 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);