본문 바로가기
컴퓨터관련/MS-SQL

MSSQL에서 테이블별 사이즈 및 건수 확인하기

by 빛과 어둠사이 2020. 7. 29.
728x90
반응형
SMALL

오늘은 MSSQL에서 테이블별 사이즈 및

ROW수를 확인하는 방법을

정리해보도록 하겠습니다.

 

사이즈 및 데이터 건수를 확인하는 경우는

자주 있지는 않을 것입니다.

하지만, 용량을 많이 차지하여 정리가 필요하거나,

쓸모없이 큰 테이블을 확인하는 등의 작업을 할 때

필요할 수 있는 쿼리입니다.

 

 

그래서 이번에는 SQL Server에서

Table 별 Size 및 Row 수를 확인하는 방법을

정리해보도록 하겠습니다.

 

크기 및 건수를 확인하는 것 모두

MSSQL에서 기본적으로 제공하는

시스템테이블을 이용하여 확인할 수 있습니다.

 

 

1. 테이블 사이즈 MB 단위로 확인하기

우선, 테이블의 사이즈를 확인하는 방법을

정리해보도록 하겠습니다.

저는 MB 단위로 사이즈를 확인해보도록 하겠습니다.

 

 

시스템 테이블을 이용하여

테이블 별 용량을 확인하는 쿼리는

다음과 같습니다.

 

SELECT 
    table_name = convert(varchar(30), min(o.name))
    , table_size = convert(int, ltrim(str(sum(reserved) * 8.192 / 1024., 15, 0))), UNIT = 'MB' 
FROM sysindexes i 
    INNER JOIN sysobjects o ON (o.id = i.id) 
WHERE i.indid IN (0, 1, 255) 
    AND o.xtype = 'U' 
GROUP BY i.id
ORDER BY table_size desc  

쿼리는 위와 같습니다.

위처럼 해주시면 되십니다.

 

그러면 테이블 별 현재 사용중인 용량이

MB 기준으로 나오게 됩니다.

 

위 쿼리를 실행하면

결과는 다음과 같이 나오게 됩니다.

 

위처럼 나와집니다.

제가 현재 운영중인 DB이기 때문에

테이블명은 숨겼습니다.

어쨌든, 저런 식으로 테이블의 사이즈가 나오게 됩니다.

 

그리고 order by 절의 조건을 변경함으로써

원하는 정렬은 변경이 가능합니다.

 

 

 

2. 테이블별 Row 수 확인하기

이번에는 테이블에 있는

데이터 건수를 확인하는 방법을

정리해보도록 하겠습니다.

 

1번에서 정리한 것과 마찬가지로

시스템 테이블을 이용하여

테이블별 Row수를 확인할 수 있습니다.

 

쿼리는 다음과 같습니다.

SELECT 
    o.name
    , i.rows 
FROM sysindexes i
    INNER JOIN sysobjects o ON i.id = o.id
WHERE i.indid < 2 
    AND o.xtype = 'U'
ORDER BY i.rows desc 

위처럼 쿼리를 작성해 주시면 되십니다.

그러면 row수를 가져올 수 있습니다.

 

위 쿼리를 실행하면

결과는 다음과 같이 나오게 됩니다.

 

1번과 마찬가지로

제가 운영중인 DB이기 때문에

테이블명과 건수는 숨겨놓았습니다.

 

 

 

 

오늘은 SQL Server에서 테이블 별

용량 및 건수를 확인하는 방법을

정리해보았습니다.

 

위에서 얘기한 것처럼

많이 사용을 하지는 않겠지만,

그래도 알고 있으면

필요할 때 사용할 수 있는 쿼리일 것 같아서

정리를 해보았습니다.

 

 

 

 

이상으로 MSSQL에서 

테이블 별 Size, Row 수 확인하는 방법이였습니다~

 

 

728x90
반응형
LIST