Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia
administrada de Azure SQLBase de datos SQL en Microsoft Fabric
La sys.dm_db_stats_properties función de gestión dinámica devuelve estadísticas para el objeto de base de datos especificado en la base de datos actual.
Para tablas particionadas, véase también el sys.dm_db_incremental_stats_properties similar.
Sintaxis
sys.dm_db_stats_properties (object_id, stats_id)
Argumentos
object_id
El ID del objeto en la base de datos actual.
object_id es int.
stats_id
El ID de estadísticas para el especificado object_id. Puedes obtener el ID de estadísticas desde la vista de gestión dinámica de sys.stats .
stats_id es int.
Tabla devuelta
| Nombre de la columna | Tipo de datos | Descripción |
|---|---|---|
object_id |
int | ID del objeto (vista de tabla o indexada). |
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. Para obtener más información, vea la sección Comentarios de este artículo. |
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 se filtran, unfiltered_rows es igual al valor devuelto en la rows columna. |
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. Tablas optimizadas para memoria: a partir de SQL Server 2016 (13.x) y en Azure SQL Database, esta columna contiene: número total de modificaciones para la tabla desde la última vez que se actualizaron las estadísticas o se reinició la base de datos. |
persisted_sample_percent |
float | Porcentaje de ejemplo persistente empleado en las actualizaciones de estadísticas en las que no se especifica explícitamente un porcentaje de muestreo. Si el valor es cero, significa que no hay establecido ningún porcentaje de ejemplo persistente para esta estadística. Aplica a: SQL Server 2016 (13.x) SP1 CU4 y versiones posteriores |
Comentarios
La sys.dm_db_stats_properties función devuelve un conjunto de filas vacío bajo cualquiera de las siguientes condiciones:
-
object_idostats_idesNULL. - El objeto especificado no se encuentra ni corresponde a una tabla o vista indexada.
- El ID de estadísticas especificado no corresponde a las estadísticas existentes para el ID del objeto especificado.
- El usuario actual no tiene permisos para ver el objeto estadísticas.
Este comportamiento permite el uso seguro de sys.dm_db_stats_properties cuando se aplica cruzado a filas en vistas como sys.objects y sys.stats.
La fecha de actualización de estadísticas se almacena en el objeto BLOB de estadísticas junto con el histograma y el vector de densidad, pero no en los metadatos. Cuando no se lee ningún dato para generar datos de estadísticas, el blob de estadísticas no se crea, la fecha no está disponible y la last_updated columna es NULL. Esta condición se aplica a estadísticas filtradas para las que el predicado no devuelve filas, o a nuevas tablas vacías.
Permisos
Necesitas SELECT permisos en las columnas de estadísticas, o debes ser dueño de la tabla, o ser miembro del sysadmin rol fijo de servidor, del db_owner rol fijo de base de datos o del db_ddladmin rol fijo de base de datos.
Ejemplos
A. Ejemplo sencillo
El siguiente ejemplo devuelve información sobre las estadísticas de la Person.Person tabla en la AdventureWorks base de datos.
SELECT * FROM sys.dm_db_stats_properties (object_id('Person.Person'), 1);
B. Devuelve todas las propiedades estadísticas de una tabla
El siguiente ejemplo devuelve propiedades de todas las estadísticas que existen para la tabla Sales.SalesOrderDetail.
SELECT
OBJECT_SCHEMA_NAME(stat.object_id) AS schema_name,
OBJECT_NAME(stat.object_id) AS table_name,
sp.stats_id,
stat.[name],
stat.filter_definition,
sp.last_updated,
sp.[rows],
sp.rows_sampled,
sp.steps,
sp.unfiltered_rows,
sp.modification_counter
FROM sys.stats AS stat
OUTER APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE stat.object_id = OBJECT_ID(N'Sales.SalesOrderDetail')
C. Propiedades de estadísticas de retorno para objetos modificados frecuentemente
El siguiente ejemplo devuelve todas las tablas, vistas indexadas y estadísticas de la base de datos actual para las cuales la columna inicial fue modificada más de 1.000 veces desde la última actualización estadística.
SELECT
OBJECT_SCHEMA_NAME(obj.[object_id]) AS schema_name,
obj.[name],
stat.[name],
stat.stats_id,
sp.last_updated,
sp.modification_counter
FROM sys.objects AS obj
INNER JOIN sys.stats AS stat ON stat.object_id = obj.object_id
OUTER APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE sp.modification_counter > 1000;
Contenido relacionado
- DBCC SHOW_STATISTICS (Transact-SQL)
- sys.stats (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)
- sys.dm_db_incremental_stats_properties (Transact-SQL)
- sys.dm_db_stats_histogram (Transact-SQL)