sys.dm_os_volume_stats(Transact-SQL)

적용 대상: SQL Server Azure SQL Database Azure Synapse Analytics 병렬 데이터 웨어하우스

SQL Server에서 지정된 데이터베이스와 파일이 저장된 운영 체제 볼륨(디렉터리)에 대한 정보를 반환합니다. 이 동적 관리 함수를 사용하여 물리적 디스크 드라이브의 특성을 확인하거나 디렉터리에 대한 사용 가능한 공간 정보를 반환할 수 있습니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

sys.dm_os_volume_stats (database_id, file_id)  

인수

database_id
데이터베이스의 ID입니다. database_idint 이며 기본값은 없습니다. NULL이 될 수 없습니다.

file_id
파일의 ID입니다. file_id int이며 기본값은 없습니다. NULL이 될 수 없습니다.

반환된 테이블

데이터 형식 설명
database_id int 데이터베이스의 ID입니다. null일 수 없습니다.
file_id int 파일의 ID입니다. null일 수 없습니다.
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 볼륨의 전체 크기(바이트)입니다. null일 수 없습니다.
available_bytes bigint 볼륨의 사용 가능한 공간입니다. null일 수 없습니다.
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 볼륨이 현재 읽기 전용으로 표시되어 있는지 여부를 나타냅니다. null일 수 없습니다.
is_compressed tinyint 이 볼륨이 현재 압축되었는지 여부를 나타냅니다. Windows Null일 수 없으며 Linux 운영 체제에서 null을 반환합니다.
incurs_seek_penalty tinyint 이 볼륨을 지원하는 스토리지 유형을 나타냅니다. 가능한 값은 다음과 같습니다.

0: 일반적으로 스토리지 디바이스가 PMM 또는 SSD인 경우 이 볼륨에 대한 찾음 패널티 없음

1: 일반적으로 스토리지 디바이스가 HDD인 경우 이 볼륨에 대한 페널티를 구합니다.

2: 볼륨이 UNC 경로 또는 탑재된 공유에 있을 때 스토리지 유형을 확인할 수 없습니다.

NULL: Linux 운영 체제에서 스토리지 유형을 확인할 수 없습니다.

적용된 내용: SQL Server SQL Server 2019 (15.x)(부터)

보안

사용 권한

VIEW SERVER 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.name), f.file_id);  

참고 항목

transact-SQL)sys.master_files (
sys.database_files(Transact-SQL)