Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Por que essas estatísticas do SQL Server estão desatualizadas quando estão definidas para atualização automática?


Mesmo que você defina as estatísticas de atualização automática como verdadeiras, elas serão atualizadas somente quando um limite for atingido.

Limites para SQL Server 2012 ou anterior:

  1. O tamanho da tabela passou de 0 para> 0 linhas

  2. O número de linhas na tabela quando as estatísticas foram coletadas era 500 ou menos, e o colmodctr da coluna principal do objeto de estatísticas mudou em mais de 500 desde então

  3. A tabela tinha mais de 500 linhas quando as estatísticas foram coletadas e o colmodctr da coluna principal do objeto de estatísticas mudou em mais de 500 + 20% do número de linhas na tabela quando as estatísticas foram coletadas

Para o SQLServer 2016, há poucas alterações importantes e estatísticas de atualizações do SQL com um novo algoritmo (lido com mais frequência do que nas versões antigas)

Normalmente, as pessoas agendam trabalhos de manutenção durante os finais de semana e isso inclui reconstrução de índice/atualização de estatísticas.

Isso normalmente deve cuidar da maioria dos bancos de dados. No seu caso, se você estiver vendo problemas de desempenho devido a estatísticas inválidas, poderá atualizá-las manualmente. Fazemos isso uma vez por semana, mas sites como StackOverflow fazem isso com mais frequência
update stats tablename

Outras leituras/referências:
Estatísticas usadas pelo otimizador de consulta no Microsoft SQL Server 2008
Compreendendo quando as estatísticas serão atualizadas automaticamente