데이타베이스 공간 확인

http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=KO-KR&k=k(SYS.DM_OS_VOLUME_STATS_TSQL);k(SQL11.SWB.TSQLRESULTS.F1);k(SQL11.SWB.TSQLQUERY.F1);k(DevLang-TSQL)&rd=true

   

원본 문서 : http://sqlblog.com/blogs/tamarick_hill/archive/2013/07/15/july-the-31-days-of-sql-server-dmo-s-day-15-sys-dm-os-volume-stats.aspx

   

기존에는 xp_fixeddrives 확장 저장프로시져를 이용해서 디스크 드라이브의 볼륨 정보를 반환할 수가 있었는데, 디스크 드라이브 문자에 대한 문제는 알파벳 문자의 수에 의해 제한된다는 것입니다. 데이터베이스 서버가 드라이브 문자 대신 마운트 포인트를 사용할 경우, 그 시점에서 당신에게 쓸모 없게 된다.

   

사용가능 버전 SQL2008R2+, SQL2012

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

   

데이타베이스 파일이 저장된 운영체제 볼륨의 크기와 여유 공간 반환

SELECT
	volume_mount_point, MAX(total_bytes) total_bytes, MAX(available_bytes) available_bytes
FROM sys.master_files AS f
CROSS APPLY sys.dm_os_volume_stats(f.database_id, f.file_id)
GROUP BY volume_mount_point

 

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)