파티션을 고려하지 못한 부분과 index_id 비교를 잘못해서 인덱스 크기 잘못 계산된 부분 재공유 합니다.
파티션을 이루는 파티션의 개수와 압축을 이용한 파티션의 개수를 같이 보여 줍니다.
SQL Server 2008 Enterprise Edition이 아니면 압축 관련 부분은 주석 처리하시면 됩니다.
select object_name(max(object_id))
, max(b.PartitionCnt) as 'PartitionCnt'
, max(b.CompressionCnt) as 'CompressionPartitionCnt'
, sum(used_page_count) * 8 as 'Total Used(KB)'
, sum(reserved_page_count) * 8 as 'Total Reserved(KB)'
, sum(case when index_id = 0 then used_page_count else 0 end) * 8 as 'Heap(KB)'
, sum(case when index_id = 1 then used_page_count else 0 end) * 8 as 'Cluster(KB)'
, sum(case when index_id >= 2 then used_page_count else 0 end) * 8 as 'Index(KB)'
, max(row_count) as 'RowCount'
, sum(in_row_used_page_count) * 8 as 'Row Used(KB)'
, sum(in_row_reserved_page_count) * 8 as 'Row Reserved(KB)'
, sum(lob_used_page_count) * 8 as 'LOB Used(KB)'
, sum(lob_reserved_page_count) * 8 as 'LOB Reserved(KB)'
, sum(row_overflow_used_page_count) * 8 as 'Overflow Used(KB)'
, sum(row_overflow_reserved_page_count) * 8 as 'Overflow Reserved(KB)'
from ( select object_id
, index_id
, sum(used_page_count) as used_page_count
, sum(reserved_page_count) as reserved_page_count
, sum(row_count) as row_count
, sum(in_row_used_page_count) as in_row_used_page_count
, sum(in_row_reserved_page_count) as in_row_reserved_page_count
, sum(lob_used_page_count) as lob_used_page_count
, sum(lob_reserved_page_count) as lob_reserved_page_count
, sum(row_overflow_used_page_count) as row_overflow_used_page_count
, sum(row_overflow_reserved_page_count) as row_overflow_reserved_page_count
from sys.dm_db_partition_stats with(nolock)
where object_name(object_id) not like 'sys%'
group by object_id, index_id
) as a
cross apply ( select count(aa.object_id) as 'PartitionCnt'
, sum(case when aa.data_compression > 0 then 1 else 0 end) as 'CompressionCnt'
from sys.partitions aa
where aa.object_id = a.object_id and aa.index_id = a.index_id
group by aa.object_id, aa.index_id
) b
group by object_id
order by 'Total Used(KB)' desc
'IT이야기 > MS-SQLDMV' 카테고리의 다른 글
[DMV] 가장 오래 돌고 있는 세션의 요청 쿼리 정보 확인 (0) | 2016.06.29 |
---|---|
[DMV] Lock으로 인해 Block 된 쿼리 찾기 (0) | 2016.06.29 |
[DMV] 현재 DB의 Object 중에 Buffer Pool 메모리 상에 있는 Object의 사용량 (0) | 2016.06.29 |
[DMV] 파일 그룹별 전체 크기와 할당 및 사용하고 있는 공간 확인 (0) | 2016.06.29 |
[DMV] 파티션 할당 정보 확인하기 (0) | 2016.06.29 |