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

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure simSQL Data Warehouse do Azure simParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Retorna a data da mais recente atualização de estatísticas em uma tabela ou exibição indexada.Returns the date of the most recent update for statistics on a table or indexed view.

Para obter mais informações sobre como atualizar estatísticas, consulte Estatísticas.For more information about updating statistics, see Statistics.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

STATS_DATE ( object_id , stats_id )  

ArgumentosArguments

object_idobject_id
ID da tabela ou exibição indexada com as estatísticas.ID of the table or indexed view with the statistics.

stats_idstats_id
ID do objeto de estatísticas.ID of the statistics object.

Tipos de retornoReturn Types

Retorna datetime em caso de êxito.Returns datetime on success. Retorna NULL se um blob de estatísticas não foi criado.Returns NULL if a statistics blob was not created.

RemarksRemarks

As funções do sistema podem ser usadas na lista de seleção, na cláusula WHERE e em qualquer local onde uma expressão puder ser usada.System functions can be used in the select list, in the WHERE clause, and anywhere an expression can be used.

A data de atualização de estatísticas é armazenada no objeto de blob de estatísticas, junto com o histograma e o vetor de densidade, não nos metadados.Statistics update date is stored in the statistics blob object together with the histogram and density vector, not in the metadata. Quando nenhum dado é lido para gerar dados de estatísticas, o blob de estatísticas não é criado e a data não fica disponível.When no data is read to generate statistics data, the statistics blob is not created, and the date is not available. Esse é o caso para estatísticas filtradas para as quais o predicado não retorna nenhuma linha ou para novas tabelas vazias.This is the case for filtered statistics for which the predicate does not return any rows, or for new empty tables.

Se as estatísticas corresponderem a um índice, o valor de stats_id na exibição do catálogo sys.stats será o mesmo que o valor de index_id na exibição do 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.

PermissõesPermissions

Requer associação à função de banco de dados fixa db_owner ou permissão para exibir os metadados da tabela ou da exibição indexada.Requires membership in the db_owner fixed database role or permission to view the metadata for the table or indexed view.

ExemplosExamples

A.A. Retornar as datas das estatísticas mais recentes de uma tabelaReturn the dates of the most recent statistics for a table

O exemplo a seguir retorna a data da mais recente atualização de cada objeto de estatísticas na tabela 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  

Se as estatísticas corresponderem a um índice, o valor de stats_id na exibição do catálogo sys.stats será igual ao valor de index_id da exibição do catálogo sys.indexes e a consulta a seguir retornará o mesmo resultado da consulta anterior.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. Se as estatísticas não corresponderem a um índice, elas estarão nos resultados de sys.stats mas não nos resultados 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  

Exemplos: Azure SQL Data WarehouseAzure SQL Data Warehouse e Parallel Data WarehouseParallel Data WarehouseExamples: Azure SQL Data WarehouseAzure SQL Data Warehouse and Parallel Data WarehouseParallel Data Warehouse

B.B. Saber a data da última atualização de uma estatística nomeadaLearn when a named statistics was last updated

O exemplo a seguir cria estatísticas na coluna LastName da tabela DimCustomer.The following example creates statistics on the LastName column of the DimCustomer table. Em seguida, ele executa uma consulta para mostrar a data das estatísticas.It then runs a query to show the date of the statistics. Depois, ele atualiza as estatísticas e executa a consulta novamente para mostrar os dados atualizados.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. Exibir a data da última atualização de todas as estatísticas em uma tabelaView the date of the last update for all statistics on a table

Este exemplo retorna a data da última atualização de cada objeto de estatísticas na tabela 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  

Se as estatísticas corresponderem a um índice, o valor de stats_id na exibição do catálogo sys.stats será igual ao valor de index_id da exibição do catálogo sys.indexes e a consulta a seguir retornará o mesmo resultado da consulta anterior.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. Se as estatísticas não corresponderem a um índice, elas estarão nos resultados de sys.stats mas não nos resultados 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 TambémSee Also

Funções de sistema (Transact-SQL) System Functions (Transact-SQL)
UPDATE STATISTICS (Transact-SQL) UPDATE STATISTICS (Transact-SQL)
sp_autostats (Transact-SQL) sp_autostats (Transact-SQL)
Estatística Statistics
sys.dm_db_stats_properties (Transact-SQL) sys.dm_db_stats_properties (Transact-SQL)
sys.statssys.stats