DB에서 대량의 데이터를 다룰 때 사실 테이블 사이즈만 볼 것이 아니라 인덱스도 같이 봐줘야 한다.
인덱스도 엄연히 테이블처럼 크기를 차지하니까.. 어떠한 경우든 배보다 배꼽이 더 크면 안되지 않을까?
mssql에서 파일그룹 내 테이블 인덱스와 사이즈, row count 조회하는 쿼리는 다음과 같다.
select ds.name, object_name(o.object_id) as table_name, isnull(i.name,'HEAP') as index_name, i.type_desc
, convert(numeric(15,1),sum(reserved_page_count)*8./1024/1024) as reserved_size_gb
, max(row_count) as row_count
from sys.dm_db_partition_stats ps
join sys.indexes i on ps.object_id = i.object_id and ps.index_id = i.index_id
join sys.data_spaces ds on i.data_space_id = ds.data_space_id
join sys.objects o on ps.object_id = o.object_id and o.type = 'U'
WHERE ds.name= 'PRIMARY'
group by ds.name, object_name(o.object_id), isnull(i.name,'HEAP'), i.type_desc
order by reserved_size_gb desc
'Programming > MSSQL' 카테고리의 다른 글
MSSQL TABLE REBUILD (0) | 2018.04.16 |
---|---|
MSSQL 파일그룹, 할당 용량, 현재 사용중인 용량, 사용 가능한 용량 조회 (0) | 2018.04.16 |
ORACLE TO MSSQL 테이블 스키마 변경하기 (0) | 2018.04.16 |
MSSQL INDEX 조각화 정보 (DBA 관리용 시스템 프로시저) (0) | 2018.04.14 |
MSSQL OJBECT 보기 (DBA 관리용 시스템 프로시저) (0) | 2018.04.13 |