Como verificar quando as estatísticas foram executadas pela última vez?

9

Ultimamente, temos tido vários problemas com nossos índices que nossa equipe de DBA atribuiu a estatísticas que não foram executadas recentemente. Isso me fez pensar - como posso verificar se as estatísticas foram atualizadas recentemente pelo SQL Management Studio?

Peço desculpas se esta pergunta não está explicando isso muito bem - só fui apresentado a estatísticas até agora e, antes disso, procuraria índices sempre que tive problemas relacionados ao desempenho.

Editar :

Estou usando o seguinte, mas estou recebendo um erro de sintaxe:

use *databasename*
exec sp_autostats *schema.tablename*

O erro que estou recebendo é:

Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '.'.

Por que é isso?

Michael A
fonte

Respostas:

12

Para sua edição - você precisa colocar o nome da tabela entre aspas simples:

EXEC sp_autostats 'tablename'

e para a pergunta original

Primeiro - encontre as estatísticas que deseja verificar:

escolha estatísticas

Segundo - veja suas propriedades, e lá você verá o último carimbo de data / hora atualizado:

insira a descrição da imagem aqui

Ou você pode querer executar a seguinte consulta:

SELECT t.name TableName, s.[name] StatName, STATS_DATE(t.object_id,s.[stats_id]) LastUpdated 
FROM sys.[stats] AS s
JOIN sys.[tables] AS t
    ON [s].[object_id] = [t].[object_id]
WHERE t.type = 'u'
Oleg Dok
fonte
9

A melhor maneira de obter informações sobre estatísticas é através do comando

DBCC SHOW_STATISTICS (<tablename>,<indexname>)

Isso retornará informações não apenas sobre quando as estatísticas foram atualizadas, mas também sobre seu tamanho, densidade, quão seletivas são e o histograma que mostra a distribuição dos dados. Com tudo isso, você pode determinar se essas estatísticas estão atualizadas e eficazes.

Grant Fritchey
fonte