STATS_DATE (Transact-SQL)STATS_DATE (Transact-SQL)

SE APLICA A: síSQL Server (a partir de 2008) síAzure SQL Database síAzure SQL Data Warehouse síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Devuelve la fecha de la actualización más reciente de las estadísticas de una tabla o vista indizada.Returns the date of the most recent update for statistics on a table or indexed view.

Para más información sobre cómo actualizar las estadísticas, vea Estadísticas.For more information about updating statistics, see Statistics.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

STATS_DATE ( object_id , stats_id )  

ArgumentosArguments

object_idobject_id
Identificador de la tabla o vista indizada con las estadísticas.ID of the table or indexed view with the statistics.

stats_idstats_id
Identificador del objeto de estadísticas.ID of the statistics object.

Tipos devueltosReturn Types

Devuelve datetime si es correcto.Returns datetime on success. Devuelve NULL si no se creó un blob de estadísticas.Returns NULL if a statistics blob was not created.

NotasRemarks

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.System functions can be used in the select list, in the WHERE clause, and anywhere an expression can be used.

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.Statistics update date is stored in the statistics blob object together with the histogram and density vector, not in the metadata. 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.When no data is read to generate statistics data, the statistics blob is not created, and the date is not available. Esto sucede en las estadísticas filtradas, en las que el predicado no devuelve ninguna fila, o en las tablas nuevas vacías.This is the case for filtered statistics for which the predicate does not return any rows, or for new empty tables.

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.If statistics correspond to an index, the stats_id value in the sys.stats catalog view is the same as the index_id value in the sys.indexes catalog view.

PermisosPermissions

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.Requires membership in the db_owner fixed database role or permission to view the metadata for the table or indexed view.

EjemplosExamples

A.A. Devolver las fechas de las estadísticas más recientes de una tablaReturn the dates of the most recent statistics for a table

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.The following example returns the date of the most recent update for each statistics object on the Person.Address table.

USE AdventureWorks2012;  
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.If statistics correspond to an index, the stats_id value in the sys.stats catalog view is the same as the index_id value in the sys.indexes catalog view, and the following query returns the same results as the preceding query. Si las estadísticas no corresponden a un índice, aparecen en los resultados de sys.stats pero no en los de sys.indexes.If statistics do not correspond to an index, they are in the sys.stats results but not in the sys.indexes results.

USE AdventureWorks2012;  
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  

Ejemplos: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse y Almacenamiento de datos paralelosParallel Data WarehouseExamples: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse and Almacenamiento de datos paralelosParallel Data Warehouse

B.B. Saber cuándo se actualizaron las estadísticas con nombre por última vezLearn when a named statistics was last updated

En el siguiente ejemplo se crean estadísticas basadas en la columna LastName de la tabla DimCustomer.The following example creates statistics on the LastName column of the DimCustomer table. Luego, se ejecuta una consulta para mostrar la fecha de las estadísticas.It then runs a query to show the date of the statistics. Por último, las estadísticas se actualizan y la consulta se vuelve ejecutar para mostrar la fecha de actualización.Then it udpates the statistics and runs the query again to show the updated date.

--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    

C.C. Ver la fecha de última actualización de todas las estadísticas en una tablaView the date of the last update for all statistics on a table

En este ejemplo se devuelve la fecha de última actualización de cada objeto de estadísticas en la tabla DimCustomer.This example returns the date for when each statistics object on the DimCustomer table was last updated.

--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.If statistics correspond to an index, the stats_id value in the sys.stats catalog view is the same as the index_id value in the sys.indexes catalog view, and the following query returns the same results as the preceding query. Si las estadísticas no corresponden a un índice, aparecen en los resultados de sys.stats pero no en los de sys.indexes.If statistics do not correspond to an index, they are in the sys.stats results but not in the sys.indexes results.

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  

Consulte tambiénSee Also

Funciones del sistema (Transact-SQL) System Functions (Transact-SQL)
UPDATE STATISTICS (Transact-SQL) UPDATE STATISTICS (Transact-SQL)
sp_autostats (Transact-SQL) sp_autostats (Transact-SQL)
Utilizar las estadísticas para mejorar el rendimiento de las consultas Statistics
sys.dm_db_stats_properties (Transact-SQL) sys.dm_db_stats_properties (Transact-SQL)
sys.statssys.stats