Atualizando as estatistica apos INDEX REBUILD
Sabe-se que as estatísticas são atualizadas durante a recriação de índice (ALTER INDEX REBUILD). Então, surge uma dúvida: se o processo noturno de manutenção realiza o rebuild de índice diariamente, ainda é necessário atualizar as estatísticas?
Com o objetivo de responder essa pergunta, vamos criar um cenário para teste com as tabelas tbUsuario e tbObjetos.
Foram criados os índices e as estatísticas nas tabelas:
CREATE INDEX idxUsuarioId ON tbObjetos(UsuarioId) CREATE INDEX idxNome ON tbUsuario(Nome) CREATE INDEX idxTipo ON tbObjetos(Tipo) CREATE STATISTICS statIdade ON tbUsuario(Idade) CREATE STATISTICS statUsuario ON tbObjetos(UsuarioId, ObjetoId)
Através do comando UPDATE STATISTICS, atualizamos todas as estatísticas manualmente:
No dia seguinte, rodamos um Rebuild das tabelas:
ALTER INDEX pkUsuario ON tbUsuario REBUILD ALTER INDEX pkObjetos ON tbObjetos REBUILD
Observamos quais estatísticas foram atualizadas:
Conclusão: Somente as estatísticas associadas aos índices foram atualizadas. As estatísticas associadas aos demais índices ou criadas manualmente (inclusive auto-create stats) não são atualizadas durante o Rebuild de índice.
Portanto, o comentário de atualizar estatística após o rebuild de índices é válido,