2007~2011/SQL Server2011. 1. 6. 09:49

지정된 데이터베이스에 포함된 모든 파일들의 사이즈와 사용량(Spaceused) 값을 확인하고 싶을 때, 사용하는 쿼리입니다. 참고자료에 링크된 쿼리를 활용하여 용도에 맞게 약간 수정하였습니다.

우선 sysfiles 테이블을 참조하면 필요한 size 정보를 확인할 수 있습니다만 8KB 단위므로, MB 로 환산하기 위해서는 128로 나눠주면 됩니다. 1MB = 128(1024/8) page 니깐요....;

SELECT * FROM dbo.sysfiles





[T-SQL]
데이터베이스에 포함된 파일들의 크기 및 사용된 공간 확인

USE MASTER
GO

SELECT

 [FIELD_ID] = 
 a.FILEID,
 
 [NAME] = 
 LEFT(a.NAME,15),
 
 [FILE_SIZE(MB)] =  CONVERT(DECIMAL(12,2),ROUND(a.size/128.000,2)),
 
 [SPACE_USED(MB)] =  CONVERT(DECIMAL(12,2),ROUND(FILEPROPERTY(a.name,'SpaceUsed')/128.000,2)),
 
 [FREE_SPACE(MB)] =  CONVERT(DECIMAL(12,2),ROUND((a.size-FILEPROPERTY(a.name,'SpaceUsed'))/128.000,2)) ,

 [PATH] = 
 LEFT(a.FILENAME,120)

FROM 
 dbo.sysfiles a




[실행결과]
Size 를 MB 단위로 확인해 볼 수 있습니다.





[참고자료]
sys.sysfiles(Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms178009.aspx

Data Compression: Strategy, Capacity Planning and Best Practices
http://msdn.microsoft.com/en-us/library/dd894051(v=sql.100).aspx


작성자 : Lai Go / 작성일자 : 2010.01.06

Posted by Lai Go