sys.dm_db_partition_stats (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Devuelve información de página y recuento de filas de cada partición en la base de datos actual.

Nota:

Para llamar a esto desde Azure Synapse Analytics o Analytics Platform System (PDW), use el nombre sys.dm_pdw_nodes_db_partition_stats. El partition_id en sys.dm_pdw_nodes_db_partition_stats difiere de la partition_id en la vista de sys.partitions catálogo de Azure Synapse Analytics. El grupo de SQL sin servidor no admite esta sintaxis en Azure Synapse Analytics.

Nombre de la columna Tipo de datos Descripción
partition_id bigint Id. de la partición. Es único en la base de datos. Este es el mismo valor que en partition_id la vista de sys.partitions catálogo, excepto Azure Synapse Analytics.
object_id int Id. de objeto de la tabla o vista indizada de la que esta partición forma parte.
index_id int Id. del montón o índice del que esta partición forma parte.

0 = Montón
1 = Índice clúster.
> 1 = Índice no agrupado
partition_number int Número de partición en base 1 en el índice o montón.
in_row_data_page_count bigint Número de páginas en uso para almacenar datos consecutivos en esta partición. Si la partición forma parte de un montón, el valor es el número de páginas de datos en el montón. Si la partición forma parte de un índice, el valor es el número de páginas en el nivel hoja. (Las páginas no hoja que no están en el árbol B+ no se incluyen en el recuento). Las páginas IAM (Mapa de asignación de índices) no se incluyen en ninguno de los casos. Siempre es 0 para un índice de almacén de columnas optimizado de memoria xVelocity.
in_row_used_page_count bigint Número total de páginas en uso para almacenar y administrar datos consecutivos en esta partición. Este recuento incluye páginas de árbol B+ no hoja, páginas IAM y todas las páginas incluidas en la columna in_row_data_page_count. Siempre es 0 para un índice de almacén de columnas.
in_row_reserved_page_count bigint Número total de páginas reservadas para almacenar y administrar datos consecutivos en esta partición, independientemente de si las páginas están en uso o no. Siempre es 0 para un índice de almacén de columnas.
lob_used_page_count bigint Número de páginas en uso para almacenar y administrar columnas text, ntext, image, varchar(max), nvarchar(max), varbinary(max) y xml no consecutivas en la partición. Las páginas IAM están incluidas.

Número total de LOBs utilizados para almacenar y administrar el índice de almacén de columnas en la partición.
lob_reserved_page_count bigint Número total de páginas reservadas para almacenar y administrar columnas text, ntext, image, varchar(max), nvarchar(max), varbinary(max) y xml no consecutivas en la partición, independientemente de si las páginas están en uso o no. Las páginas IAM están incluidas.

Número total de LOBs reservados para almacenar y administrar un índice de almacén de columnas en la partición.
row_overflow_used_page_count bigint Número de páginas en uso para almacenar y administrar columnas varchar, nvarchar, varbinary y sql_variant de desbordamiento de fila en la partición. Las páginas IAM están incluidas.

Siempre es 0 para un índice de almacén de columnas.
row_overflow_reserved_page_count bigint Número total de páginas reservadas para almacenar y administrar columnas varchar, nvarchar, varbinary y sql_variant de desbordamiento de fila en la partición, independientemente de si las páginas están en uso o no. Las páginas IAM están incluidas.

Siempre es 0 para un índice de almacén de columnas.
used_page_count bigint Número total de páginas usadas para la partición. Se calcula como in_row_used_page_count + lob_used_page_count + row_overflow_used_page_count.
reserved_page_count bigint Número total de páginas reservadas para la partición. Se calcula como in_row_reserved_page_count + lob_reserved_page_count + row_overflow_reserved_page_count.
row_count bigint Número aproximado de filas de la partición.
pdw_node_id int Se aplica a: Azure Synapse Analytics, Sistema de la plataforma de análisis (PDW)

Identificador del nodo en el que se encuentra esta distribución.
distribution_id int Se aplica a: Azure Synapse Analytics, Sistema de la plataforma de análisis (PDW)

Identificador numérico único asociado a la distribución.

Comentarios

La sys.dm_db_partition_stats vista de administración dinámica (DMV) muestra información sobre el espacio usado para almacenar y administrar datos LOB de datos en fila y datos de desbordamiento de fila para todas las particiones de una base de datos. Se muestra una fila por partición.

Los recuentos en los que se basan los resultados se almacenan en caché en memoria o se almacenan en disco en varias tablas del sistema.

Los datos consecutivos, datos LOB y datos de desbordamiento de fila representan las tres unidades de asignación que forman una partición. La vista de catálogo sys.allocation_units se puede consultar para encontrar metadatos acerca de cada unidad de asignación en la base de datos.

Si un montón o un índice no tiene particiones, entonces consta de una partición (con el número de partición = 1); por tanto, solo se devuelve una fila para ese montón o índice. La vista de catálogo sys.partitions se puede consultar para encontrar metadatos acerca de cada partición de todas las tablas e índices en una base de datos.

El recuento total de cada tabla o índice se puede obtener agregando los recuentos de todas las particiones relacionadas.

Permisos

Requiere VIEW DATABASE STATE permisos y VIEW DEFINITION para consultar la sys.dm_db_partition_stats vista de administración dinámica. Para más información sobre las vistas de administración dinámica, consulte Funciones y vistas de administración dinámica (Transact-SQL).

Permisos para SQL Server 2022 y versiones posteriores

Requiere permisos VIEW DATABASE PERFORMANCE STATE y VIEW SECURITY DEFINITION en la base de datos.

Ejemplos

A Devolver todos los recuentos de todas las particiones de todos los índices y montones de una base de datos

En el siguiente ejemplo se muestran todos los recuentos de todas las particiones de todos los índices y montones en la base de datos AdventureWorks2022.

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

B. Devolver todos los recuentos de todas las particiones de una tabla y sus índices

En el siguiente ejemplo se muestran todos los recuentos de todas las particiones de la tabla HumanResources.Employee y sus índices.

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

C. Devuelve el total de páginas usadas y el número total de filas de un montón o un índice agrupado.

En el siguiente ejemplo se devuelve el número total de páginas usadas y el número total de filas del montón o índice clúster de la tabla HumanResources.Employee. Puesto que la tabla Employee no tiene particiones de forma predeterminada, observe que la suma solo incluye una partición.

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