Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Se aplica a: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punto de conexión de análisis SQL en Microsoft Fabric
Almacenamiento en Microsoft Fabric
Devuelve la fecha de la actualización más reciente de las estadísticas de una tabla o vista indizada.
Para más información sobre cómo actualizar las estadísticas, vea Estadísticas.
Convenciones de sintaxis de Transact-SQL
STATS_DATE ( object_id , stats_id )
object_id
Identificador de la tabla o vista indizada con las estadísticas.
stats_id
Identificador del objeto de estadísticas.
Devuelve datetime si es correcto. Devuelve NULL si no se creó un blob de estadísticas.
Las funciones del sistema se pueden utilizar en la lista de selección, en la cláusula WHERE y en cualquier lugar donde se permita una expresión.
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 con el que generar datos de estadísticas, el BLOB de estadísticas no se crea y la fecha no está disponible. Esto sucede en las estadísticas filtradas, en las que el predicado no devuelve ninguna fila, o en las tablas nuevas vacías.
Si las estadísticas corresponden a un índice, el valor de stats_id de la vista de catálogo sys.stats es el mismo que el valor de index_id de la vista de catálogo sys.indexes.
Es necesaria la pertenencia al rol fijo de servidor db_owner o al rol fijo de base de datos maestra o al rol fijo de servidor sysadmin.
En el ejemplo siguiente, se devuelve la fecha de la actualización más reciente de cada objeto de estadísticas de la tabla Person.Address
.
USE AdventureWorks2022;
GO
SELECT name AS stats_name,
STATS_DATE(object_id, stats_id) AS statistics_update_date
FROM sys.stats
WHERE object_id = OBJECT_ID('Person.Address');
GO
Si las estadísticas corresponden a un índice, el valor de stats_id de la vista de catálogo sys.stats es el mismo que el valor de index_id de la vista de catálogo sys.indexes, y la consulta siguiente devuelve los mismos resultados que la consulta precedente. Si las estadísticas no corresponden a un índice, aparecen en los resultados de sys.stats pero no en los de sys.indexes.
USE AdventureWorks2022;
GO
SELECT name AS index_name,
STATS_DATE(object_id, index_id) AS statistics_update_date
FROM sys.indexes
WHERE object_id = OBJECT_ID('Person.Address');
GO
En el siguiente ejemplo se crean estadísticas basadas en la columna LastName de la tabla DimCustomer. Luego, se ejecuta una consulta para mostrar la fecha de las estadísticas. Por último, las estadísticas se actualizan y la consulta se vuelve ejecutar para mostrar la fecha de actualización.
--First, create a statistics object
USE AdventureWorksPDW2012;
GO
CREATE STATISTICS Customer_LastName_Stats
ON AdventureWorksPDW2012.dbo.DimCustomer (LastName)
WITH SAMPLE 50 PERCENT;
GO
--Return the date when Customer_LastName_Stats was last updated
USE AdventureWorksPDW2012;
GO
SELECT stats_id, name AS stats_name,
STATS_DATE(object_id, stats_id) AS statistics_date
FROM sys.stats s
WHERE s.object_id = OBJECT_ID('dbo.DimCustomer')
AND s.name = 'Customer_LastName_Stats';
GO
--Update Customer_LastName_Stats so it will have a different timestamp in the next query
GO
UPDATE STATISTICS dbo.dimCustomer (Customer_LastName_Stats);
--Return the date when Customer_LastName_Stats was last updated.
SELECT stats_id, name AS stats_name,
STATS_DATE(object_id, stats_id) AS statistics_date
FROM sys.stats s
WHERE s.object_id = OBJECT_ID('dbo.DimCustomer')
AND s.name = 'Customer_LastName_Stats';
GO
En este ejemplo se devuelve la fecha de última actualización de cada objeto de estadísticas en la tabla DimCustomer.
--Return the dates all statistics on the table were last updated.
SELECT stats_id, name AS stats_name,
STATS_DATE(object_id, stats_id) AS statistics_date
FROM sys.stats s
WHERE s.object_id = OBJECT_ID('dbo.DimCustomer');
GO
Si las estadísticas corresponden a un índice, el valor de stats_id de la vista de catálogo sys.stats es el mismo que el valor de index_id de la vista de catálogo sys.indexes, y la consulta siguiente devuelve los mismos resultados que la consulta precedente. Si las estadísticas no corresponden a un índice, aparecen en los resultados de sys.stats pero no en los de sys.indexes.
USE AdventureWorksPDW2012;
GO
SELECT name AS index_name,
STATS_DATE(object_id, index_id) AS statistics_update_date
FROM sys.indexes
WHERE object_id = OBJECT_ID('dbo.DimCustomer');
GO
Funciones del sistema (Transact-SQL)
UPDATE STATISTICS (Transact-SQL)
sp_autostats (Transact-SQL)
estadísticas
sys.dm_db_stats_properties (Transact-SQL)
sys.stats
Estadísticas en Microsoft Fabric
Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoy