오늘은 SQL SERVER에서의 테이별
데이터 건수 및 크기를 확인하는 방법을
정해보도록 하겠습니다.
MS-SQL에는 기본적으로
시스템 테이블을 이용하여
확인할 수 있도록 제공하고 있습니다.
확인하는 쿼리는
다음과 같습니다.
SELECT table_name = convert(varchar(30), min(o.name)) --테이블명 ,Rows = rowCnt --테이블건수 , table_size = convert(int, ltrim(str(sum(cast(reserved as bigint)) * 8192 / 1024., 15, 0))) --테이블 사이즈 , UNIT = 'KB' --단위 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,rowCnt ORDER BY table_size DESC ;
위 쿼리를 이용하여
조회를 하면
현재 카탈로그에 있는 전체 TABLE에 대해서
row수 및 size 를 확인할 수 있습니다.
위 쿼리를 실행하면
결과는 다음과 같이 나오게 됩니다.
위처럼 나오게 됩니다.
table_name은 테이블명
rows는 데이터의 건수
table_size는 용량입니다.
위 쿼리를 이용해서
특정 하나의 테이블에 대해서만
조회를 할 수 있습니다.
하나의 테이블에 대해서만
용량을 확인하는 query는 다음과 같습니다.
SELECT table_name = convert(varchar(30), min(o.name)) --테이블명 ,Rows = rowCnt --테이블건수 , table_size = convert(int, ltrim(str(sum(cast(reserved as bigint)) * 8192 / 1024., 15, 0))) --테이블 사이즈 , UNIT = 'KB' --단위 FROM sysindexes i INNER JOIN sysobjects o ON (o.id = i.id) WHERE i.indid IN (0, 1, 255) AND o.xtype = 'U' AND o.name = '테이블명' --테이블명 GROUP BY i.id,rowCnt ORDER BY table_size DESC ;
위의 쿼리에서
테이블명 부분만 수정을 해주시면 되십니다.
저는 샘플로 하나의 테이블명을 넣고
실행을 해보았습니다.
결과는 다음과 같이 나왔습니다.
위처럼 나오게 되었습니다.
그런데 하나의 테이블에 대해서
데이터 건수를 확인할 일이 있을 경우
위처럼 할 수도 있고,
count 함수를 이용해서 할 수도 있습니다.
count함수는 건수만 필요할 경우
많이 사용하실 거라고 생각을 합니다.
하지만 이것은 저는 좋은 방법은 아니라고 생각합니다.
제 개인적인 생각이므로 틀릴 수도 있습니다.
하지만 저는 그렇게 생각합니다.
데이터의 건수가 많지 않으면
상관이 없지만
데이터의 양이 많을 때 하게 되면
SERVER에 부하가 갈 수 있습니다.
물론, 특정 조건에 맞는
데이터의 갯수를 확인할 때는
어쩔 수 없지만요.
그래서 저는 하나의 테이블에 대해서만
건수를 확인할 필요가 있을 때는
MSSQL에서 제공하는
내장프로시저를 이용하는 것을
추천합니다.
내장프로시저는 SP_SPACEUSED 입니다.
위 프로시저를 이용하면
쉬우면서도 정확한 정보를 추출할 수 있습니다.
실제 사용 쿼리를 이용해서
확인해보도록 하겠습니다.
아래처럼 QUERY를 작성해보았습니다.
SP_SPACEUSED 테이블명
그리고 실행을 하면
결과는 다음과 같습니다.
위처럼 나오게 됩니다.
맨 위의 쿼리에서 확인한 것과 같이
row수 및 size등이 나오게 됩니다.
그리고 index에 대해서도
사이즈가 나오고 합니다.
그러니 이걸 이용하는 것이
저는 더욱 좋다고 생각합니다.
위에서 얘기한 것처럼
이것은 제 주관적인 생각임을 다시 한번
고지합니다.
이상으로 SQLSERVER에서의
테이블별 건수 및 사이즈 확인하는
방법이였습니다~
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'컴퓨터관련 > MS-SQL' 카테고리의 다른 글
MSSQL에서의 EXISTS와 IN의 사용 및 차이점 (0) | 2020.06.05 |
---|---|
MSSQL에서 INDEX에 INCLUDE 되어있는 정보 확인하기 (0) | 2020.05.12 |
MS-SQL에서 단어자동완성 옵션 활성화 및 해제하기 (0) | 2020.04.09 |
MS-SQL에서 랜덤정렬하기 (0) | 2020.03.11 |
MS-SQL에서 프로시저 및 함수 쿼리 확인 및 생성,수정일자 등 정보 확인하기 (0) | 2020.03.09 |