Tenho uma metrics
tabela particionada por ano e mês ( metrics_y2023m01
, metrics_y2023m02
, etc). O analyze metrics
comando atualiza as estatísticas da tabela e de cada partição individualmente, mas a grande maioria das modificações ocorre na partição do mês atual, então pensei em espaçar no tempo a execução da análise de toda a tabela e agendar outra diária análise da partição mais ocupada.
- Faz sentido analisar uma única partição sem atualizar as estatísticas da tabela pai?
- Posso analisar uma única partição e a tabela pai sem precisar analisar as outras partições?
- Qual o peso das estatísticas da tabela pai em relação às estatísticas das partições no planejador de consultas?
Obrigado.
Sim, faz sentido para
ANALYZE
uma única partição. No entanto, você não deve fazer isso manualmente: ajusteautovacuum_analyze_scale_factor
eautovacuum_analyze_threshold
para essa tabela para que o autovacuum seja executadoANALYZE
automaticamente nos intervalos adequados.Se você usar
ANALYZE
a tabela particionada, todas as partições serão analisadas. Não há como evitar isso. Na verdade, é bom agendar issoANALYZE
ocasionalmente, porque o autovacuum não trata tabelas particionadas, mas as estatísticas na tabela particionada ainda podem ser importantes para o planejamento de consultas. Depende da declaração se as estatísticas da tabela particionada ou as estatísticas da partição são mais importantes. Ambos devem estar em boa forma.