sys.dm_os_volume_stats (Transact-SQL)

platí pro:SQL Server

Vrací informace o svazku operačního systému (adresáři), na kterém jsou zadané databáze a soubory uloženy v SQL Server. Použijte tuto funkci dynamické správy k ověření atributů fyzické diskové jednotky nebo k vrácení informací o dostupném volném místě adresáře.

Transact-SQL konvence syntaxe

Syntax

sys.dm_os_volume_stats (database_id , file_id)

Argumenty

database_id

ID databáze. database_id je inteligence, bez výchozího nastavení. Nejde NULL.

file_id

ID souboru. file_id je inteligence, bez výchozího nastavení. Nejde NULL.

Vrácená tabulka

Column Datový typ Description
database_id int ID databáze. Není nulovatelný.
file_id int ID souboru. Není nulovatelný.
volume_mount_point nvarchar(512) Bod montáže, kde je objem zakořeněný. Může vrátit prázdný řetězec. Na Linuxu se vrací null.
volume_id nvarchar(512) ID svazku operačního systému. Může vrátit prázdný řetězec. Na Linuxu se vrací null.
logical_volume_name nvarchar(512) Logický název svazku. Může vrátit prázdný řetězec. Na Linuxu se vrací null.
file_system_type nvarchar(512) Typ svazku souborového systému (například NTFS, FAT, RAW). Může vrátit prázdný řetězec. Na Linuxu se vrací null.
total_bytes bigint Celková velikost v bajtech svazku. Není nulovatelný.
available_bytes bigint Volné místo na svazku. Není nulovatelný.
supports_compression tinyint Indikuje, zda svazek podporuje kompresi operačního systému. Na Windows to nelze zrušit a na Linuxu vrací null.
supports_alternate_streams tinyint Označuje, zda hlasitost podporuje alternativní proudy. Na Windows to nelze zrušit a na Linuxu vrací null.
supports_sparse_files tinyint Označuje, zda svazek podporuje řídké soubory. Na Windows to nelze zrušit a na Linuxu vrací null.
is_read_only tinyint Označuje, zda je svazek aktuálně označen jako pouze pro čtení. Není nulovatelný.
is_compressed tinyint Označuje, zda je tento objem aktuálně komprimovaný. Na Windows to nelze zrušit a na Linuxu vrací null.
incurs_seek_penalty tinyint Označuje typ úložiště, které tento svazek podporuje. Možné hodnoty:

0: Na tomto svazku není penalizace za hledání, obvykle pokud je úložným zařízením PMM nebo SSD

1: Na tomto svazku se pokuta Seeking Charge, obvykle pokud je úložné zařízení HDD

2: Typ úložiště nelze určit, když je svazek na cestě UNC nebo připojených sdílených

NULL: Typ úložiště nelze určit na operačním systému Linux

platí pro: SQL Server 2019 (15.x) a novější verze

Povolení

SQL Server 2019 (15.x) a starší verze vyžadují oprávnění VIEW SERVER STATE na serveru.

SQL Server 2022 (16.x) a novější verze vyžadují VIEW SERVER PERFORMANCE STATE oprávnění k serveru.

Examples

A. Vraťte celkový prostor a dostupný prostor pro všechny databázové soubory

Následující příklad vrací celkový prostor a dostupný prostor (v bajtech) pro všechny databázové soubory v instanci 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. Vraťte celkový prostor a dostupný prostor pro aktuální databázi

Následující příklad vrací celkový prostor a dostupný prostor (v bajtech) pro databázové soubory v aktuální databázi.

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