Compartir a través de


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 clúster.

> 1 = Índice no clúster

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. 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.

Comentarios

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 fila 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 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

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 AdventureWorks2012.

USE AdventureWorks2012;
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 AdventureWorks2012;
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 clúster

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 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

Vea también

Referencia

Funciones y vistas de administración dinámica (Transact-SQL)

Vistas de administración dinámica relacionadas con la base de datos (Transact-SQL)