sys.dm_db_partition_stats(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
현재 데이터베이스의 모든 파티션에 대해 페이지 및 행 수 정보를 반환합니다.
참고 항목
Azure Synapse Analytics 또는 PDW(Analytics Platform System)에서 이를 호출하려면 이름을 sys.dm_pdw_nodes_db_partition_stats
사용합니다. partition_id sys.dm_pdw_nodes_db_partition_stats
Azure Synapse Analytics 카탈로그 뷰의 sys.partitions
partition_id 다릅니다. 이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
partition_id |
bigint | 파티션의 ID입니다. 데이터베이스 내에서 고유합니다. Azure Synapse Analytics를 partition_id sys.partitions 제외한 카탈로그 뷰의 값과 동일합니다. |
object_id |
int | 파티션이 속한 테이블 또는 인덱싱된 뷰의 개체 ID입니다. |
index_id |
int | 파티션의 일부인 힙 또는 인덱스의 ID입니다. 0 = 힙 1 = 클러스터형 인덱스입니다. > 1 = 비클러스터형 인덱스 |
partition_number |
int | 인덱스 또는 힙 내의 1부터 시작하는 파티션 번호입니다. |
in_row_data_page_count |
bigint | 이 파티션에 행 내 데이터를 저장하는 데 사용할 페이지 수입니다. 파티션이 힙의 일부인 경우 값은 힙의 데이터 페이지 수입니다. 파티션이 인덱스의 일부인 경우 값은 리프 수준의 페이지 수입니다. (B+ 트리의 리프가 아닌 페이지는 개수에 포함되지 않습니다.) IAM(인덱스 할당 맵) 페이지는 두 경우 모두 포함되지 않습니다. 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 | 파티션 내에서 행 외부 텍스트, ntext, image, varchar(max), nvarchar(max), varbinary(max) 및 xml 열을 저장하고 관리하는 데 사용할 페이지 수입니다. IAM 페이지가 포함됩니다. 파티션의 columnstore 인덱스를 저장하고 관리하는 데 사용되는 LOB의 총 수입니다. |
lob_reserved_page_count |
bigint | 페이지 사용 여부에 관계없이 행 외부 텍스트, ntext, image, varchar(max), nvarchar(max), varbinary(max) 및 xml 열을 저장하고 관리하기 위해 예약된 총 페이지 수입니다. IAM 페이지가 포함됩니다. 파티션에 columnstore 인덱스 저장 및 관리를 위해 예약된 총 LOB 수입니다. |
row_overflow_used_page_count |
bigint | 파티션 내의 행 오버플로 varchar, nvarchar, varbinary 및 sql_variant 열을 저장하고 관리하는 데 사용하는 페이지 수입니다. IAM 페이지가 포함됩니다. columnstore 인덱스의 경우 항상 0입니다. |
row_overflow_reserved_page_count |
bigint | 페이지 사용 여부에 관계없이 파티션 내에서 행 오버플로 varchar, nvarchar, varbinary 및 sql_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 | 파티션의 대략적인 행 수입니다. |
pdw_node_id |
int | 적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW) 이 배포가 있는 노드의 식별자입니다. |
distribution_id |
int | 적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW) 분포와 연결된 고유 숫자 ID입니다. |
설명
DMV(동적 관리 뷰)에는 sys.dm_db_partition_stats
행 내 데이터 LOB 데이터를 저장 및 관리하는 데 사용되는 공간에 대한 정보와 데이터베이스의 모든 파티션에 대한 행 오버플로 데이터가 표시됩니다. 파티션마다 행 하나가 표시됩니다.
출력의 기반이 되는 개수는 메모리에 캐시되거나 다양한 시스템 테이블의 디스크에 저장됩니다.
행 내부 데이터, LOB 데이터 및 행 오버플로 데이터는 파티션을 구성하는 세 개의 할당 단위를 나타냅니다. 데이터베이스의 각 할당 단위에 대한 메타데이터에 대해 sys.allocation_units 카탈로그 뷰를 쿼리할 수 있습니다.
힙 또는 인덱스가 분할되지 않은 경우 파티션 번호 = 1인 파티션 하나로 구성됩니다. 따라서 해당 힙 또는 인덱스용 행은 하나만 반환됩니다. 데이터베이스에 있는 모든 테이블과 인덱스의 각 파티션에 관한 메타데이터에 대해 sys.partitions 카탈로그 뷰를 쿼리할 수 있습니다.
개별 테이블이나 인덱스에 대한 총 수는 관련된 모든 파티션에 대한 수를 더하여 얻을 수 있습니다.
사용 권한
동적 관리 뷰를 VIEW DATABASE STATE
쿼리 sys.dm_db_partition_stats
하려면 필요한 권한과 VIEW DEFINITION
권한이 필요합니다. 동적 관리 뷰 사용 권한에 관한 자세한 내용은 동적 관리 뷰 및 함수(Transact-SQL)를 참조하세요.
SQL Server 2022 이상에 대한 사용 권한
데이터베이스에 대한 VIEW DATABASE PERFORMANCE STATE 및 VIEW SECURITY DEFINITION 권한이 필요합니다.
예제
A. 데이터베이스에 있는 모든 인덱스 및 힙의 모든 파티션에 대한 모든 개수를 반환합니다.
다음 예제에서는 AdventureWorks2022 데이터베이스에 있는 모든 인덱스 및 힙의 모든 파티션에 대한 모든 개수를 보여 줍니다.
USE AdventureWorks2022;
GO
SELECT * FROM sys.dm_db_partition_stats;
GO
B. 테이블 및 해당 인덱스의 모든 파티션에 대한 모든 개수를 반환합니다.
다음 예제에서는 테이블 및 해당 인덱스의 모든 파티션에 HumanResources.Employee
대한 모든 개수를 보여 줍니다.
USE AdventureWorks2022;
GO
SELECT * FROM sys.dm_db_partition_stats
WHERE object_id = OBJECT_ID('HumanResources.Employee');
GO
C. 힙 또는 클러스터형 인덱스에 대해 사용된 총 페이지 및 총 행 수를 반환합니다.
다음 예제에서는 테이블의 힙 또는 클러스터형 인덱 HumanResources.Employee
스에 대해 사용된 총 페이지와 총 행 수를 반환합니다. 테이블은 Employee
기본적으로 분할되지 않으므로 합계에는 하나의 파티션만 포함됩니다.
USE AdventureWorks2022;
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