Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de Dados SQL no Microsoft Fabric
Devolve a data da atualização mais recente para estatísticas numa tabela ou vista indexada.
Para mais informações sobre a atualização de estatísticas, consulte Estatísticas.
Transact-SQL convenções de sintaxe
Sintaxe
STATS_DATE ( object_id , stats_id )
Arguments
object_id
ID da tabela ou da vista indexada com as estatísticas.
stats_id
ID do objeto de estatística.
Tipos de devolução
Retorna a data e hora do sucesso. Devolve NULL se não foi criado um blob de estatísticas.
Observações
As funções do sistema podem ser usadas na lista de seleção, na cláusula WHERE e em qualquer lugar onde uma expressão possa ser usada.
A data de atualização das estatísticas é armazenada no objeto de blob de estatísticas juntamente com o de histograma e o vetor de densidade , não nos metadados. Quando nenhum dado é lido para gerar dados estatísticos, o blob de estatísticas não é criado e a data não está disponível. Este é o caso de estatísticas filtradas para as quais o predicado não devolve linhas, ou para novas tabelas vazias.
Se as estatísticas corresponderem a um índice, o valor stats_id na vista de catálogo sys.stats é o mesmo que o valor index_id na vista de catálogo sys.indexes .
Permissions
Requer pertença à db_owner função fixa na base de dados ou permissão para visualizar os metadados da tabela ou da vista indexada.
Examples
A. Devolva as datas das estatísticas mais recentes para uma tabela
O exemplo seguinte devolve a data da atualização mais recente para cada objeto de estatísticas na Person.Address tabela.
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
Se as estatísticas corresponderem a um índice, o valor stats_id na vista de catálogo sys.stats é o mesmo que o valor index_id na vista de catálogo sys.indexes , e a consulta seguinte devolve os mesmos resultados da consulta anterior. Se as estatísticas não correspondem a um índice, estão nos resultados do sys.stats mas não nos resultados do 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
Exemplos: Azure Synapse Analytics and Analytics Platform System (PDW)
B. Saiba quando uma estatística nomeada foi atualizada pela última vez
O exemplo seguinte cria estatísticas na coluna Último Nome da tabela DimCustomer. Depois, executa uma consulta para mostrar a data das estatísticas. Depois verifica as estatísticas e executa novamente a consulta para mostrar a data de atualização.
--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. Consulte a data da última atualização para todas as estatísticas numa tabela
Este exemplo devolve a data em que cada objeto de estatísticas na tabela DimCustomer foi atualizado pela última vez.
--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 stats_id na vista de catálogo sys.stats é o mesmo que o valor index_id na vista de catálogo sys.indexes , e a consulta seguinte devolve os mesmos resultados da consulta anterior. Se as estatísticas não correspondem a um índice, estão nos resultados do sys.stats mas não nos resultados do 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
Ver também
Funções do sistema (Transact-SQL)
ATUALIZAR ESTATÍSTICAS (Transact-SQL)
sp_autostats (Transact-SQL)
Estatísticas
sys.dm_db_stats_properties (Transact-SQL)
sys.stats
Estatísticas no Microsoft Fabric