Aracılığıyla paylaş


sys.dm_os_volume_stats (Transact-SQL)

Şunlar için geçerlidir: SQL Server

Belirtilen veritabanlarının ve dosyaların SQL Server'da depolandığı işletim sistemi birimi (dizin) hakkında bilgi döndürür. Fiziksel disk sürücüsünün özniteliklerini denetlemek veya dizinle ilgili kullanılabilir boş alan bilgilerini döndürmek için bu dinamik yönetim işlevini kullanın.

Transact-SQL söz dizimi kuralları

Sözdizimi

sys.dm_os_volume_stats (database_id , file_id)

Bağımsız değişken

database_id

Veritabanının kimliği. database_id,varsayılan değildir. NULLolamaz.

file_id

Dosyanın kimliği. file_idvarsayılan değildir. NULLolamaz.

Tablo döndürüldü

Sütun Veri tipi Açıklama
database_id int Veritabanının kimliği. Boş değer atanamaz.
file_id int Dosyanın kimliği. Boş değer atanamaz.
volume_mount_point nvarchar(512) Birimin köklendiği bağlama noktası. Boş bir dize döndürebilir. Linux'ta null döndürür.
volume_id nvarchar(512) İşletim sistemi birim kimliği. Boş bir dize döndürebilir. Linux'ta null döndürür.
logical_volume_name nvarchar(512) Mantıksal birim adı. Boş bir dize döndürebilir. Linux'ta null döndürür.
file_system_type nvarchar(512) Dosya sistemi biriminin türü (ntfs, FAT, RAW gibi). Boş bir dize döndürebilir. Linux'ta null döndürür.
total_bytes bigint Birimin bayt cinsinden toplam boyutu. Boş değer atanamaz.
available_bytes bigint Birimde kullanılabilir boş alan. Boş değer atanamaz.
supports_compression tinyint Birimin işletim sistemi sıkıştırmasını desteklediğini gösterir. Windows üzerinde null değer atanamaz ve Linux'ta null döndürür.
supports_alternate_streams tinyint Birimin alternatif akışları desteklediğini gösterir. Windows üzerinde null değer atanamaz ve Linux'ta null döndürür.
supports_sparse_files tinyint Birimin seyrek dosyaları desteklediğini gösterir. Windows üzerinde null değer atanamaz ve Linux'ta null döndürür.
is_read_only tinyint Birimin şu anda salt okunur olarak işaretlenip işaretlenmediğini gösterir. Boş değer atanamaz.
is_compressed tinyint Bu birimin şu anda sıkıştırılmış olup olmadığını gösterir. Windows üzerinde null değer atanamaz ve Linux'ta null döndürür.
incurs_seek_penalty tinyint Bu birimi destekleyen depolama türünü gösterir. Olası değerler şunlardır:

0: Genellikle depolama cihazı PMM veya SSD olduğunda bu birimde arama cezası yoktur

1: Genellikle depolama cihazı HDD olduğunda bu birimde ceza arayın

2: Birim bir UNC yolunda veya bağlı paylaşımlarda olduğunda depolama türü belirlenemez

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

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

İzinler

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

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

Örnekler

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

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. Geçerli veritabanı için toplam alan ve kullanılabilir alan döndürme

Aşağıdaki örnek, geçerli 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);