반응형
테이블별 용량 조회
SELECT C.name AS [TableName],
SUM(A.total_pages)*8.0/1024 AS [TotalSize(MB)]
FROM sys.allocation_units A
INNER JOIN sys.partitions B ON B.hobt_id = A.container_id
INNER JOIN sys.table C ON B.object_id = C.object_id
INNER JOIN sys.schemas D ON C.schema_id = D.schema_id
GROUP BY C.name
ORDER BY 2 DESC
테이블별 ROW 수 조회
SELECT B.name AS [TableName],
A.row_count AS [RowCount]
FROM sys.dm_db_partition_stats A
INNER JOIN sys.tables B ON A.object_id = B.object_id
WHERE A.index_id IN (0, 1) -- 힙, 클러스터드 인덱스
ORDER BY A.row_count DESC
sys.db_db_partition_stats 뷰는 시스템 뷰로, SQL Server 가 내부적으로 유지 관리하는 통계 정보를 기반으로 하여 결과를 반환한다. 테이블을 실제로 스캔하지 않기 때문에 데이터베이스에 큰 부하를 주지 않고, 신속하게 결과를 얻을 수 있다. 그러나, 이 통계는 즉각적으로 업데이트되지 않을 수 있어 매우 정확한 행 수가 필요할 때는 COUNT(*) 을 사용하는 것이 좋다. (일반적으로 이러한 오차는 매우 미미하다.)
반응형
'DBMS > SQL Server (MS-SQL)' 카테고리의 다른 글
[SQL Server / MS-SQL] 저장 프로시저(Stored Procedure) 내용 조회 (0) | 2024.07.11 |
---|---|
[SQL Server / MS-SQL] Wait Stats (대기 통계) (0) | 2024.05.30 |
[SQL Server / MS-SQL] VLF (가상로그파일 - Virtual Log File) (0) | 2024.05.28 |
[SQL Server / MS-SQL] ROW 모드와 BATCH 모드 (SQL 처리 방식) (0) | 2024.05.27 |
[SQL Server / MS-SQL] 특정 테이블의 페이지 확인하기 (DBCC IND, DBCC PAGE) (0) | 2024.05.22 |