SQL Server 테이블 조회에 필요한 뷰
sys.dm_db_partitions_stats
현재 데이터베이스의 파티션에 구성된 페이지와 로우 수 정보를 반환합니다.
sys.internal_tables
내부 테이블 전용입니다.
sys.all_objects
스키마에 구성된 모든 객체를 보여줍니다.
SQL Server 모든 테이블 크기를 조회하는 쿼리
+ 테이블의 건수와, 테이블에 구성된 인덱스들의 합도 같이 확인할 수 있습니다.
쿼리로 확인하는 방법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
SELECT
OBJECT_SCHEMA_NAME(a2.object_id) AS SchemaName,
a2.name AS TableName,
a1.rows as [RowCount],
CAST(ROUND(((a1.reserved + ISNULL(a4.reserved,0)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS ReservedSize_MB,
CAST(ROUND(a1.data * 8 / 1024.00, 2) AS NUMERIC(36, 2)) AS DataSize_MB,
CAST(ROUND((CASE WHEN (a1.used + ISNULL(a4.used,0)) > a1.data THEN (a1.used + ISNULL(a4.used,0)) - a1.data ELSE 0 END) * 8 / 1024.00, 2) AS NUMERIC(36, 2)) AS IndexSize_MB,
CAST(ROUND((CASE WHEN (a1.reserved + ISNULL(a4.reserved,0)) > a1.used THEN (a1.reserved + ISNULL(a4.reserved,0)) - a1.used ELSE 0 END) * 8 / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSize_MB
FROM
(SELECT
ps.object_id,
SUM (CASE WHEN (ps.index_id < 2) THEN row_count ELSE 0 END) AS [rows],
SUM (ps.reserved_page_count) AS reserved,
SUM (CASE
WHEN (ps.index_id < 2) THEN (ps.in_row_data_page_count + ps.lob_used_page_count + ps.row_overflow_used_page_count)
ELSE (ps.lob_used_page_count + ps.row_overflow_used_page_count)
END
) AS data,
SUM (ps.used_page_count) AS used
FROM sys.dm_db_partition_stats ps
GROUP BY ps.object_id) AS a1
LEFT OUTER JOIN
(SELECT
it.parent_id,
SUM(ps.reserved_page_count) AS reserved,
SUM(ps.used_page_count) AS used
FROM sys.dm_db_partition_stats ps
INNER JOIN sys.internal_tables it ON (it.object_id = ps.object_id)
WHERE it.internal_type IN (202,204)
GROUP BY it.parent_id) AS a4 ON (a4.parent_id = a1.object_id)
INNER JOIN sys.all_objects a2 ON ( a1.object_id = a2.object_id )
WHERE a2.type <> N'S' and a2.type <> N'IT'
ORDER BY ReservedSize_MB DESC
|
cs |
sp_spaceused 로 크기 비교해보기
위의 테이블 합을 SQL Server 에서 지원하는 sp_spaceused 로 확인하면 동일한 것을 확인할 수 있습니다.
1
2
3
4
5
6
7
8
|
sp_spaceused 'Person.person'
go
sp_spaceused 'Sales.SalesOrderDetail'
go
sp_spaceused 'Production.TransactionHistory'
go
sp_spaceused 'Production.TransactionHistoryArchive'
go
|
cs |
SQL Server 모든 테이블 용량 조회하는 쿼리
SQL Server 모든 테이블 크기 조회하는 쿼리
SQL Server 모든 테이블 사이즈 조회하는 쿼리
SQL Server 전체 테이블 용량 조회하는 쿼리
SQL Server 전체 테이블 크기 조회하는 쿼리
SQL Server 전체 테이블 사이즈 조회하는 쿼리
SQL Server 모든 테이블 건수 조회하는 쿼리
SQL Server 전체 테이블 건수 조회하는 쿼리
'SQL Server > SQL Server 자주보는' 카테고리의 다른 글
[MSSQL] SP 생성시간 수정시간 확인하는 방법 (0) | 2021.07.27 |
---|---|
[MSSQL] 인덱스 생성 진행률 확인하는 방법 (0) | 2020.11.18 |
[MSSQL] 모든 인덱스 사이즈를 조회하는 방법 (0) | 2020.10.29 |
[MSSQL] 특정 단어가 포함된 프로시저 찾는 방법 (0) | 2020.04.19 |
[MSSQL] 오랫동안 활성화 되어 있는 트랜잭션 확인하는 방법 (0) | 2020.02.28 |