MSSQL System Query

문주은·2025년 1월 9일
  1. 특정 테이블의 크기 확인
USE [데이터베이스명];
GO

DECLARE @TableName NVARCHAR(256) = N'스키마명.테이블명';
DECLARE @SpaceUsed TABLE (
    name NVARCHAR(256),
    rows CHAR(20),
    reserved NVARCHAR(20),
    data NVARCHAR(20),
    index_size NVARCHAR(20),
    unused NVARCHAR(20)
);

-- sp_spaceused 결과를 테이블 변수에 저장
INSERT INTO @SpaceUsed
EXEC sp_spaceused @TableName;

-- 결과를 GB로 변환하여 SELECT
SELECT 
    name AS TableName,
    CAST(rows AS BIGINT) AS TotalRows,
    CAST(REPLACE(reserved, ' KB', '') AS FLOAT) / 1024 / 1024 AS Reserved_GB,
    CAST(REPLACE(data, ' KB', '') AS FLOAT) / 1024 / 1024 AS Data_GB,
    CAST(REPLACE(index_size, ' KB', '') AS FLOAT) / 1024 / 1024 AS IndexSize_GB,
    CAST(REPLACE(unused, ' KB', '') AS FLOAT) / 1024 / 1024 AS Unused_GB
FROM @SpaceUsed;
  • 결과
TableName
TotalRows
Reserved_GB : 현재 예약하고 있는 총 공간(데이터, 인덱스, 비어 있는 공간 모두 포함), 즉 미리 할당된 공간
Data_GB : 실제 데이터가 차지하는 공간
IndexSize_GB
Unused_GB

profile
Data Engineer

0개의 댓글