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
Vea también