sys.dm_os_volume_stats (Transact-SQL)

Berlaku untuk:SQL Server

Mengembalikan informasi tentang volume sistem operasi (direktori) tempat database dan file yang ditentukan disimpan di SQL Server. Gunakan fungsi manajemen dinamis ini untuk memeriksa atribut drive disk fisik atau mengembalikan informasi ruang kosong yang tersedia tentang direktori.

Konvensi sintaks Transact-SQL

Syntax

sys.dm_os_volume_stats (database_id , file_id)

Argumen

database_id

ID database. database_id int, tanpa default. Tidak boleh NULL.

file_id

ID file. file_id int, tanpa default. Tidak boleh NULL.

Tabel dikembalikan

kolom Jenis data Deskripsi
database_id int ID database. Tidak dapat diubah ke null.
file_id int ID file. Tidak dapat diubah ke null.
volume_mount_point nvarchar(512) Titik pemasangan di mana volume di-root. Dapat mengembalikan string kosong. Mengembalikan null di Linux.
volume_id nvarchar(512) ID volume sistem operasi. Dapat mengembalikan string kosong. Mengembalikan null di Linux.
logical_volume_name nvarchar(512) Nama volume logis. Dapat mengembalikan string kosong. Mengembalikan null di Linux.
file_system_type nvarchar(512) Jenis volume sistem file (misalnya, NTFS, FAT, RAW). Dapat mengembalikan string kosong. Mengembalikan null di Linux.
total_bytes bigint Ukuran total dalam byte volume. Tidak dapat diubah ke null.
available_bytes bigint Tersedia ruang kosong pada volume. Tidak dapat diubah ke null.
supports_compression tinyint Menunjukkan apakah volume mendukung kompresi sistem operasi. Tidak dapat diubah di Windows, dan mengembalikan null di Linux.
supports_alternate_streams tinyint Menunjukkan apakah volume mendukung aliran alternatif. Tidak dapat diubah di Windows, dan mengembalikan null di Linux.
supports_sparse_files tinyint Menunjukkan apakah volume mendukung file jarang. Tidak dapat diubah di Windows, dan mengembalikan null di Linux.
is_read_only tinyint Menunjukkan apakah volume saat ini ditandai sebagai baca-saja. Tidak dapat diubah ke null.
is_compressed tinyint Menunjukkan apakah volume ini saat ini dikompresi. Tidak dapat diubah di Windows, dan mengembalikan null di Linux.
incurs_seek_penalty tinyint Menunjukkan jenis penyimpanan yang mendukung volume ini. Nilai yang mungkin adalah:

0: Tidak ada penalti pencarian pada volume ini, biasanya saat perangkat penyimpanan adalah PMM atau SSD

1: Cari penalti pada volume ini, biasanya saat perangkat penyimpanan adalah HDD

2: Jenis penyimpanan tidak dapat ditentukan saat volume berada di jalur UNC atau berbagi yang dipasang

NULL: Jenis penyimpanan tidak dapat ditentukan pada sistem operasi Linux

Berlaku untuk: SQL Server 2019 (15.x) dan versi yang lebih baru

Permissions

SQL Server 2019 (15.x) dan versi yang lebih lama memerlukan VIEW SERVER STATE izin di server.

SQL Server 2022 (16.x) dan versi yang lebih baru memerlukan VIEW SERVER PERFORMANCE STATE izin di server.

Examples

A. Mengembalikan total ruang dan ruang yang tersedia untuk semua file database

Contoh berikut mengembalikan total ruang dan ruang yang tersedia (dalam byte) untuk semua file database dalam instans 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. Mengembalikan total ruang dan ruang yang tersedia untuk database saat ini

Contoh berikut mengembalikan total ruang dan ruang yang tersedia (dalam byte) untuk file database dalam database saat ini.

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