sys.dm_db_stats_properties (Transact-SQL)
Devuelve propiedades de estadísticas para el objeto de base de datos especificado (tabla o vista indizada) en la base de datos de SQL Server actual.
[!NOTA]
El objeto de administración dinámica, sys.dm_db_stats_properties, está disponible en SQL Server 2012 a partir de Service Pack 1 y en SQL Server 2008 R2 a partir de Service Pack 2.
Sintaxis
sys.dm_db_stats_properties (object_id, stats_id)
Argumentos
object_id
Es el identificador del objeto en la base de datos actual para el que se han solicitado propiedades de una de sus estadísticas. object_id es de tipo int.stats_id
Es el identificador de estadísticas para el object_id especificado. El identificador de estadísticas se puede obtener desde la vista de administración dinámica sys.stats. stats_id es de tipo int.
Tabla devuelta
Nombre de columna |
Tipo de datos |
Descripción |
---|---|---|
object_id |
int |
Identificador del objeto (tabla o vista indizada) para el que se devuelven las propiedades del objeto de estadísticas. |
stats_id |
int |
Identificador del objeto de estadísticas. Es único dentro de la vista indizada o la tabla. Para obtener más información, vea sys.stats (Transact-SQL). |
last_updated |
datetime2 |
Fecha y hora de la última actualización del objeto de estadísticas. |
rows |
bigint |
Número total de filas que tenía la tabla o la vista indizada la última vez que se actualizaron las estadísticas. Si las estadísticas se filtran o corresponden a un índice filtrado, el número de filas puede ser inferior al número de filas de la tabla. |
rows_sampled |
bigint |
Número total de filas muestreadas para cálculos de estadísticas. |
steps |
int |
Número de pasos del histograma. Para obtener más información, vea DBCC SHOW_STATISTICS (Transact-SQL). |
unfiltered_rows |
bigint |
Número total de filas de la tabla antes de aplicar la expresión de filtro (para estadísticas filtradas). Si las estadísticas no están filtradas, unfiltered_rows es igual al valor devuelto en la columna rows. |
modification_counter |
bigint |
Número total de modificaciones para la columna de estadísticas iniciales (la columna en la que se ha generado el histograma) desde la última vez que se actualizaron las estadísticas. |
Comentarios
sys.dm_db_stats_properties devuelve un conjunto de filas vacío en las siguientes condiciones:
object_id o stats_id es NULL.
El objeto especificado no se encuentra o no corresponde a una vista indizada o a una tabla.
El identificador de estadísticas especificado no se corresponde con las estadísticas existentes para el identificador de objeto especificado.
El usuario actual no tiene permisos para ver el objeto de estadísticas.
Este comportamiento permite el uso seguro de sys.dm_db_stats_properties cuando se aplica de manera cruzada a filas en vistas como sys.objects y sys.stats.
Permisos
Necesita que el usuario tenga permisos de selección en columnas de estadísticas o posea la tabla, o que el usuario sea miembro del rol fijo de servidor sysadmin, del rol fijo de base de datos db_owner o del rol fijo de base de datos db_ddladmin.
Ejemplos
A.Devolver propiedades de todas las estadísticas de una tabla
En el ejemplo siguiente se devuelven propiedades de todas las estadísticas que existen para la tabla TEST.
SELECT
sp.stats_id, name, filter_definition, last_updated, rows, rows_sampled, steps, unfiltered_rows, modification_counter
FROM sys.stats AS stat
CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE stat.object_id = object_id('TEST');
B.Devolver propiedades de estadísticas para objetos modificados frecuentemente
En el ejemplo siguiente se devuelven todas las tablas, vistas indizadas y estadísticas de la base de datos actual para las que la columna inicial se modificó más de 1000 veces desde la última actualización de estadísticas.
SELECT
obj.name, obj.object_id, stat.name, stat.stats_id, last_updated, modification_counter
FROM sys.objects AS obj
JOIN sys.stats stat ON stat.object_id = obj.object_id
CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE modification_counter > 1000;
Vea también
Referencia
DBCC SHOW_STATISTICS (Transact-SQL)
Funciones y vistas de administración dinámica relacionadas con objetos (Transact-SQL)
Funciones y vistas de administración dinámica (Transact-SQL)