Para la base de datos actual, podemos obtener las estadísticas para cada partición de índices (incluso si solo tiene una partición), como recuento de filas, recuento de páginas, etc.
id_partición: identificador numérico de la partición (se relaciona con sys.partitons)
object_id: el object_id del objeto al que pertenece la partición
index_id: identifica el índice en la tabla. 0 = Montón
partition_number: 1 para tablas no particionadas. Para tablas particionadas será el número basado en 1 de la partición.
in_row_data_page_count: el número de páginas que se utilizan para los datos del objeto. Pueden ser las páginas hoja de un índice o las páginas de datos de una tabla o montón agrupados
in_row_used_page_count: incluye todas las páginas en uso para el objeto, incluidas las páginas de mapa de asignación de índice y de índice no hoja.
in_row_reserved_page_count: incluye todas las páginas en uso más las páginas reservadas para el objeto, incluso si las páginas no están actualmente en uso.
lob_used_page_count: recuento de páginas en uso para que el objeto almacene valores fuera de fila, como varchar(max), varbinary(max), etc.
lob_reserved_page_count: recuento de las páginas fuera de la fila, incluidas las que están reservadas pero no en uso.
row_overflow_used_page_count: recuento de páginas que están en uso para almacenar datos de desbordamiento para filas que son más grandes de lo que cabe en una sola página de ~8K
row_overflow_reserved_page_count: recuento de páginas en exceso que incluye las páginas que están reservadas pero que no están en uso
used_page_count: número total de páginas en uso en la partición por cualquier motivo
reserved_page_count: número total de páginas en uso o reservadas en la partición por cualquier motivo.
row_count: El número de filas en la tabla.
SELECT sys_schemas.name AS SchemaName,
sys_objects.name AS TableName,
sys_indexes.name AS IndexName,
sys_indexes.type_desc AS IndexType,
ps.used_page_count * 8 AS IndexSizeKB,
CAST(ps.used_page_count * 8 / 1024.00 AS Decimal(10, 3)) AS IndexSizeMB,
CAST(ps.used_page_count * 8 / 1048576.00 AS Decimal(10, 3)) AS IndexSizeGB,
ps.partition_number AS PartitionNumber,
ps.row_count AS [RowCount]
FROM sys.dm_db_partition_stats ps
INNER JOIN sys.indexes sys_indexes ON ps.[object_id] = sys_indexes.[object_id]
AND ps.index_id = sys_indexes.index_id AND sys_indexes.type_desc <> 'HEAP'
INNER JOIN sys.objects sys_objects ON sys_objects.[object_id] = ps.[object_id]
INNER JOIN sys.schemas sys_schemas ON sys_objects.[schema_id] = sys_schemas.[schema_id]
AND sys_schemas.name <> 'SYS'
ORDER BY 1, 2, 3, 4
Leave a Reply