sys.dm_db_partition_stats(Transact-SQL)

현재 데이터베이스의 모든 파티션에 대해 페이지 및 행 수 정보를 반환합니다.

열 이름

데이터 형식

설명

partition_id

bigint

파티션의 ID입니다. 데이터베이스 내에서 고유합니다. sys.partitions 카탈로그 뷰의 partition_id와 동일한 값입니다.

object_id

int

파티션이 속한 테이블 또는 인덱싱된 뷰의 개체 ID입니다.

index_id

int

파티션이 속한 힙 또는 인덱스의 ID입니다.

0 = 힙

1 = 클러스터형 인덱스

> 1 = 비클러스터형 인덱스

partition_number

int

인덱스 또는 힙 내의 1부터 시작하는 파티션 번호입니다.

in_row_data_page_count

bigint

이 파티션의 행 내부 데이터를 저장하는 데 사용되는 페이지 수입니다. 파티션이 힙의 일부인 경우 이 값은 힙의 데이터 페이지 수입니다. 파티션이 인덱스의 일부인 경우 이 값은 리프 수준의 페이지 수입니다. B-트리의 리프가 아닌 페이지는 이 수에 포함되지 않습니다. 어느 경우에도 IAM(Index Allocation Map) 페이지는 포함되지 않습니다. xVelocity 메모리 최적화 columnstore 인덱스의 경우 항상 0입니다.

in_row_used_page_count

bigint

이 파티션의 행 내부 데이터를 저장하고 관리하는 데 사용되는 페이지의 총 수입니다. 이 수에는 리프가 아닌 B-트리 페이지, IAM 페이지와 in_row_data_page_count 열에 포함된 모든 페이지가 포함됩니다. columnstore 인덱스의 경우 항상 0입니다.

in_row_reserved_page_count

bigint

페이지 사용 여부에 관계없이 이 파티션의 행 내부 데이터를 저장하고 관리하는 데 사용하도록 예약된 페이지의 총 수입니다. columnstore 인덱스의 경우 항상 0입니다.

lob_used_page_count

bigint

파티션 내에서 행 외부 text, ntext, image, varchar(max), nvarchar(max), varbinary(max)xml 열을 저장하고 관리하는 데 사용되는 페이지 수입니다. IAM 페이지가 포함됩니다.

파티션의 columnstore 인덱스를 저장하고 관리하는 데 사용되는 LOB의 총 수입니다.

lob_reserved_page_count

bigint

페이지 사용 여부에 관계없이 파티션 내에서 행 외부 text, ntext, image, varchar(max), nvarchar(max), varbinary(max)xml 열을 저장하고 관리하는 데 사용하도록 예약된 페이지의 총 수입니다. IAM 페이지가 포함됩니다.

파티션의 columnstore 인덱스를 저장하고 관리하는 데 사용하도록 예약된 LOB의 총 수입니다.

row_overflow_used_page_count

bigint

파티션 내에서 행 오버플로 varchar, nvarchar, varbinarysql_variant 열을 저장하고 관리하는 데 사용되는 페이지 수입니다. IAM 페이지가 포함됩니다.

columnstore 인덱스의 경우 항상 0입니다.

row_overflow_reserved_page_count

bigint

페이지 사용 여부에 관계없이 행 오버플로 varchar, nvarchar, varbinarysql_variant 열을 저장하고 관리하는 데 사용하도록 예약된 페이지의 총 수입니다. IAM 페이지가 포함됩니다.

columnstore 인덱스의 경우 항상 0입니다.

used_page_count

bigint

파티션에 사용되는 페이지의 총 수입니다. in_row_used_page_count + lob_used_page_count + row_overflow_used_page_count로 계산됩니다.

reserved_page_count

bigint

파티션에 사용하도록 예약된 페이지의 총 수입니다. in_row_reserved_page_count + lob_reserved_page_count + row_overflow_reserved_page_count로 계산됩니다.

row_count

bigint

파티션에 있는 행의 대략적인 수입니다.

주의

sys.dm_db_partition_stats는 데이터베이스의 모든 파티션에 대한 행 내부 데이터, LOB 데이터 및 행 오버플로 데이터를 저장하고 관리하는 데 사용되는 공간에 대한 정보를 표시합니다. 파티션마다 행 하나가 표시됩니다.

출력의 기준이 되는 이 개수는 메모리에 캐시되거나 디스크에서 다양한 시스템 테이블에 저장됩니다.

행 내부 데이터, LOB 데이터 및 행 오버플로 데이터는 파티션을 구성하는 세 개의 할당 단위를 나타냅니다. 데이터베이스의 각 할당 단위에 대한 메타데이터에 대해 sys.allocation_units 카탈로그 뷰를 쿼리할 수 있습니다.

힙이나 인덱스가 분할되지 않은 경우에는 하나의 파티션으로 구성되므로(파티션 번호 = 1) 힙이나 인덱스에 대해 하나의 행만 반환됩니다. 데이터베이스에 있는 모든 테이블과 인덱스의 각 파티션에 관한 메타데이터에 대해 sys.partitions 카탈로그 뷰를 쿼리할 수 있습니다.

개별 테이블이나 인덱스에 대한 총 수는 관련된 모든 파티션에 대한 수를 더하여 얻을 수 있습니다.

사용 권한

sys.dm_db_partition_stats 동적 관리 뷰를 쿼리하려면 VIEW DATABASE STATE 권한이 필요합니다. 동적 관리 뷰 사용 권한에 대한 자세한 내용은 동적 관리 뷰 및 함수(Transact-SQL)를 참조하십시오.

1.데이터베이스에 있는 모든 인덱스와 힙의 모든 파티션에 대한 모든 개수 반환

다음 예에서는 AdventureWorks2012 데이터베이스에 있는 모든 인덱스와 힙의 모든 파티션에 대한 모든 개수를 표시합니다.

USE AdventureWorks2012;
GO
SELECT * FROM sys.dm_db_partition_stats;
GO

2.테이블과 테이블 인덱스의 모든 파티션에 대한 모든 개수 반환

다음 예에서는 HumanResources.Employee 테이블과 해당 인덱스의 모든 파티션에 대한 모든 개수를 표시합니다.

USE AdventureWorks2012;
GO
SELECT * FROM sys.dm_db_partition_stats 
WHERE object_id = OBJECT_ID('HumanResources.Employee');
GO

3.힙 또는 클러스터형 인덱스에 대해 사용된 총 페이지 및 총 행 수 반환

다음 예에서는 HumanResources.Employee 테이블의 힙이나 클러스터형 인덱스에 대해 사용된 총 페이지와 총 행 수를 반환합니다. Employee 테이블은 기본적으로 분할되지 않기 때문에 합계에는 하나의 파티션만 포함됩니다.

USE AdventureWorks2012;
GO
SELECT SUM(used_page_count) AS total_number_of_used_pages, 
    SUM (row_count) AS total_number_of_rows 
FROM sys.dm_db_partition_stats
WHERE object_id=OBJECT_ID('HumanResources.Employee')    AND (index_id=0 or index_id=1);
GO

참고 항목

참조

동적 관리 뷰 및 함수(Transact-SQL)

데이터베이스 관련 동적 관리 뷰(Transact-SQL)