sys.dm_os_volume_stats(Transact-SQL)
적용 대상:SQL Server
지정된 데이터베이스와 파일이 SQL Server에 저장되는 운영 체제 볼륨(디렉터리)에 대한 정보를 반환합니다. 이 동적 관리 함수를 사용하여 실제 디스크 드라이브의 특성을 확인하거나 디렉터리에 대한 사용 가능한 여유 공간 정보를 반환합니다.
구문
sys.dm_os_volume_stats (database_id , file_id)
인수
database_id
데이터베이스의 ID입니다.
database_id는 int이며 기본값은 없습니다.
NULL
수 없습니다.
file_id
파일의 ID입니다.
file_id 기본값이 없는 int입니다.
NULL
수 없습니다.
반환된 테이블
열 | 데이터 형식 | 묘사 |
---|---|---|
database_id |
int | 데이터베이스의 ID입니다. nullable이 아닙니다. |
file_id |
int | 파일의 ID입니다. nullable이 아닙니다. |
volume_mount_point |
nvarchar(512) | 해당 볼륨이 루트 경로로 지정된 탑재 지점입니다. 빈 문자열을 반환할 수 있습니다. Linux에서 null을 반환합니다. |
volume_id |
nvarchar(512) | 운영 체제 볼륨 ID입니다. 빈 문자열을 반환할 수 있습니다. Linux에서 null을 반환합니다. |
logical_volume_name |
nvarchar(512) | 논리적 볼륨 이름입니다. 빈 문자열을 반환할 수 있습니다. Linux에서 null을 반환합니다. |
file_system_type |
nvarchar(512) | 파일 시스템 볼륨의 형식(예: NTFS, FAT, RAW)입니다. 빈 문자열을 반환할 수 있습니다. Linux에서 null을 반환합니다. |
total_bytes |
bigint | 볼륨의 총 크기(바이트)입니다. nullable이 아닙니다. |
available_bytes |
bigint | 볼륨에서 사용 가능한 여유 공간입니다. nullable이 아닙니다. |
supports_compression |
tinyint | 볼륨에서 운영 체제 압축을 지원하는지 여부를 나타냅니다. Windows에서는 null을 허용하지 않으며 Linux에서 null을 반환합니다. |
supports_alternate_streams |
tinyint | 볼륨이 대체 스트림을 지원하는지 나타냅니다. Windows에서는 null을 허용하지 않으며 Linux에서 null을 반환합니다. |
supports_sparse_files |
tinyint | 볼륨이 스파스 파일을 지원하는지 나타냅니다. Windows에서는 null을 허용하지 않으며 Linux에서 null을 반환합니다. |
is_read_only |
tinyint | 볼륨이 현재 읽기 전용으로 표시되어 있는지를 나타냅니다. nullable이 아닙니다. |
is_compressed |
tinyint | 이 볼륨이 현재 압축되었는지 여부를 나타냅니다. Windows에서는 null을 허용하지 않으며 Linux에서 null을 반환합니다. |
incurs_seek_penalty |
tinyint | 이 볼륨을 지원하는 스토리지 유형을 나타냅니다. 가능한 값은 다음과 같습니다.0 : 일반적으로 스토리지 디바이스가 PMM 또는 SSD인 경우 이 볼륨에 대한 검색 페널티 없음1 : 일반적으로 스토리지 디바이스가 HDD인 경우 이 볼륨에 대한 페널티를 구합니다.2 : 볼륨이 UNC 경로 또는 탑재된 공유에 있을 때 스토리지 유형을 확인할 수 없습니다.NULL : Linux 운영 체제에서 스토리지 유형을 확인할 수 없습니다.적용 대상: SQL Server 2019(15.x) 이상 버전 |
사용 권한
SQL Server 2019(15.x) 및 이전 버전에는 서버에 대한 VIEW SERVER STATE
권한이 필요합니다.
SQL Server 2022(16.x) 이상 버전에는 서버에 대한 VIEW SERVER PERFORMANCE STATE
권한이 필요합니다.
예제
A. 모든 데이터베이스 파일에 대해 총 공간 및 사용 가능한 공간 반환
다음 예제에서는 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. 현재 데이터베이스의 총 공간 및 사용 가능한 공간 반환
다음 예제에서는 현재 데이터베이스의 데이터베이스 파일에 대한 총 공간 및 사용 가능한 공간(바이트)을 반환합니다.
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);