sys.dm_db_partition_stats (Transact-SQL)

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

Nombre de columna

Tipo de datos

Descripción

partition_id

bigint

Id. de la partición. Es único en la base de datos. Es el mismo valor que partition_id en la vista de catálogo sys.partitions

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 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 hojas en B-tree no están incluidas en el recuento.) En cualquier caso, las páginas IAM (Mapa de asignación de índices) no están incluidas.

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 B-tree no hojas, páginas IAM y todas las páginas incluidas en la columna in_row_data_page_count.

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.

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.

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.

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 filas en la partición. Las páginas IAM están incluidas.

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 filas en la partición, independientemente de si las páginas están en uso o no. Las páginas IAM están incluidas.

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 de filas en la partición.

Notas

sys.dm_db_partition_stats muestra información acerca del espacio usado para almacenar y administrar datos LOB de datos consecutivos y datos de desbordamiento de filas para todas las particiones en una base de datos. Se muestra una fila por partición.

Los recuentos en los que se basa el resultado 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 filas representan las tres unidades de asignación que forman una partición. Para obtener más información acerca de las unidades de asignación, vea Organización de tablas e índices. 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, sólo se devuelve una fila para ese montón o índice. Para obtener más información acerca de las particiones, vea Organización de tablas e índices. 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

Se requiere el permiso VIEW DATABASE STATE para consultar la vista de administración dinámica sys.dm_db_partition_stats. Para obtener más información acerca de los permisos en las vistas de administración dinámica, vea Funciones y vistas de administración dinámica (Transact-SQL).

Ejemplos

A. Devolver todos los recuentos de todas las particiones de todos los índices y montones en 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 AdventureWorks.

USE AdventureWorks;
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 AdventureWorks;
GO
SELECT * FROM sys.dm_db_partition_stats 
WHERE object_id = OBJECT_ID('HumanResources.Employee');
GO

C. Devolver el número total de páginas usadas y el número total de filas de un montón o í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 agrupado de la tabla HumanResources.Employee. Puesto que la tabla Employee no tiene particiones de forma predeterminada, observe que la suma sólo incluye una partición.

USE AdventureWorks;
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