Eu tenho algumas das estatísticas _WA_Sys_ geradas automaticamente no meu banco de dados que não são atualizadas há algum tempo (em comparação com outras estatísticas na mesma tabela)
A regra geral parece ser em tabelas >500 linhas que as estatísticas são atualizadas em uma alteração de dados de 20% + 500 linhas.
No entanto, posso ver usando a seguinte consulta
SELECT t.name,
i.name,
i.rowcnt,
i.rowmodctr,
p.last_updated
FROM sys.sysindexes i
JOIN sys.tables t
ON i.id = t.object_id
JOIN sys.stats s
ON s.object_id = t.object_id AND i.name = s.name
CROSS APPLY sys.dm_db_stats_properties(s.object_id,s.stats_id) p
WHERE rowmodctr > 0
ORDER BY i.rowmodctr DESC
Que existe uma tabela com várias estatísticas _WA_Sys_ que estão desatualizadas (e têm um rowmodctr maior que 20% + 500)
Se executar uma consulta na tabela e adicionar uma das colunas associadas às estatísticas _WA_Sys_ desatualizadas na cláusula WHERE e verificar a data de atualização da estatística, posso ver que ela foi atualizada.
Se eu executar a mesma consulta com a cláusula WHERE novamente, a estatística não será atualizada
Parece que as estatísticas do _WA_Sys são atualizadas quando uma consulta é executada que as usará e elas estão desatualizadas?
O SQL Server atualiza automaticamente apenas as estatísticas que ele usa. Ele pode não estar usando ativamente as estatísticas _WA_Sys para estimativa de cardinalidade, embora possa carregá-las como parte da decisão.
Para ver quais estatísticas estão sendo usadas para sua consulta, adicione isso ao final de sua consulta e procure na guia Mensagens:
OPTION(QUERYTRACEON 3604, QUERYTRACEON 2363);
Se seu banco de dados estiver em um nível de compatibilidade anterior a 2014, você precisará destes:
OPTION(QUERYTRACEON 3604, QUERYTRACEON 9292, QUERYTRACEON 9204);
Isso não lhe dirá por que não está usando certas estatísticas, embora geralmente se houver estatísticas criadas com uma porcentagem de amostragem mais alta na mesma coluna, as estatísticas com porcentagens de amostragem mais baixas serão desfavorecidas.
Lembre-se de que as atualizações de estatísticas não ocorrem na modificação, apenas quando são executadas consultas que as usam