sys.dm_os_volume_stats (Transact-SQL)

Şunlar için geçerlidir: SQL Server

Belirtilen veritabanları ve dosyaların SQL Server'da depolandığı işletim sistemi hacmi (dizin) hakkında bilgi verir. Bu dinamik yönetim fonksiyonunu kullanarak fiziksel disk sürücüsünün özelliklerini kontrol edin veya dizinin mevcut boş alan bilgilerini geri getirin.

Transact-SQL söz dizimi kuralları

Syntax

sys.dm_os_volume_stats (database_id , file_id)

Argümanlar

database_id

Veritabanının kimliği. database_idint ve varsayılan yok. Olmaz NULL.

file_id

Dosyanın kimliği. file_idINT, varsayılan yok. Olmaz NULL.

Tablo geri getirildi

Column Veri türü Description
database_id int Veritabanının kimliği. Null değeri atanamaz.
file_id int Dosyanın kimliği. Null değeri atanamaz.
volume_mount_point nvarchar(512) Hacimin köklendiği montaj noktası. Boş bir diziyi döndürebilir. Linux'ta null döndürüyor.
volume_id nvarchar(512) İşletim sistemi hacim kimliği. Boş bir diziyi döndürebilir. Linux'ta null döndürüyor.
logical_volume_name nvarchar(512) Mantıklı cilt adı. Boş bir diziyi döndürebilir. Linux'ta null döndürüyor.
file_system_type nvarchar(512) Dosya sistemi hacmi türü (örneğin, NTFS, FAT, RAW). Boş bir diziyi döndürebilir. Linux'ta null döndürüyor.
total_bytes bigint Hacimin baytlarla toplam boyutu. Null değeri atanamaz.
available_bytes bigint Ciltte boş yer var. Null değeri atanamaz.
supports_compression tinyint Ses seviyesinin işletim sistemi sıkıştırmasını destekleyip desteklemediğini gösterir. Windows'ta nullable değil, Linux'ta null döndürüyor.
supports_alternate_streams tinyint Ses seviyesinin alternatif akışları destekleyip desteklemediğini gösterir. Windows'ta nullable değil, Linux'ta null döndürüyor.
supports_sparse_files tinyint Volume seyrek dosyaları destekleyip desteklemediğini gösterir. Windows'ta nullable değil, Linux'ta null döndürüyor.
is_read_only tinyint Cildin şu anda yalnızca okunabilir olarak işaretlenip işaretlenmediğini gösterir. Null değeri atanamaz.
is_compressed tinyint Bu hacmin şu anda sıkıştırılmış olup olmadığını gösterir. Windows'ta nullable değil, Linux'ta null döndürüyor.
incurs_seek_penalty tinyint Bu hacmi destekleyen depolama türünü gösterir. Olası değerler şunlardır:

0: Bu hacimde arama cezası yoktur, genellikle depolama cihazı PMM veya SSD olduğunda

1: Bu hacimde, genellikle depolama cihazı HDD olduğunda ceza talep edin

2: Depolama türü, hacim UNC yolunda veya monte paylaşılmışsa belirlenemez.

NULL: Linux işletim sisteminde depolama türü belirlenemiyor

Şunlar için geçerlidir: SQL Server 2019 (15.x) ve sonraki sürümleri

Permissions

SQL Server 2019 (15.x) ve önceki sürümler sunucuda izin gerektirir VIEW SERVER STATE .

SQL Server 2022 (16.x) ve sonraki sürümleri sunucuda izin gerektirir VIEW SERVER PERFORMANCE STATE .

Examples

A. Tüm veritabanı dosyaları için toplam alan ve kullanılabilir alan döndürün

Aşağıdaki örnek, SQL Server örneğindeki tüm veritabanı dosyaları için toplam alanı ve kullanılabilir alanı (bayt cinsinden) döndürür.

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. Mevcut veritabanı için toplam alanı ve kullanılabilir alanı geri getir

Aşağıdaki örnek, mevcut veritabanındaki veritabanı dosyaları için toplam alanı ve kullanılabilir alanı (bayt cinsinden) döndürür.

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