[MSSQL] 물리적인 테이블 크기 확인
MSSQL에서 테이블 크기를 확인하고 싶을 때
현재 사용하고 있는 데이터베이스(DB)의 테이블 크기(용량)를 확인하고 싶을 때 사용하는 쿼리 공유합니다.
수식을 사용하여 MB, GB로 변경하여 확인이 가능합니다.
아래의 쿼리에서 [DB_NAME] 을 본인의 데이터베이스명으로 변경하여 사용합니다.
USE [DB_NAME]
SET NOCOUNT ON
CREATE TABLE #TBLSize
(
Tblname VARCHAR(80),
TblRows INT,
TblReserved VARCHAR(80),
TblData VARCHAR(80),
TblIndex_Size VARCHAR(80),
TblUnused VARCHAR(80)
)
DECLARE @tablename VARCHAR(80)
DECLARE TblName_cursor CURSOR
FOR
SELECT NAME
FROM sysobjects
WHERE xType = 'U'
OPEN TblName_cursor
FETCH NEXT FROM TblName_cursor
INTO @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO #tblSize
(
Tblname,
TblRows,
TblReserved,
TblData,
TblIndex_Size,
TblUnused
)
EXEC Sp_SpaceUsed @tablename
FETCH NEXT FROM TblName_cursor
INTO @tablename
END
CLOSE TblName_cursor
DEALLOCATE TblName_cursor
SELECT CAST(Tblname AS VARCHAR(30)) 'Table',
CAST(TblRows AS VARCHAR(14)) 'Row Count',
CAST(LEFT(TblReserved, CHARINDEX(' KB', TblReserved)) AS INT) 'Total Space (KB)',
CAST(TblData AS VARCHAR(14)) 'Data Space',
CAST(TblIndex_Size AS VARCHAR(14)) 'Index Space',
CAST(TblUnused AS VARCHAR(14)) 'Unused Space'
FROM #tblSize
ORDER BY 'Total Space (KB)' DESC
DROP TABLE #TblSize
SET NOCOUNT OFF