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.

image

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:

image

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:

image

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,