PostgreSQL ANALYZE
O comando `ANALYZE` no PostgreSQL coleta estatísticas sobre o conteúdo das tabelas no banco de dados. Essas estatísticas são usadas pelo planejador de consultas para gerar planos de execução eficientes para as consultas.
Uso
O comando `ANALYZE` é usado para atualizar as estatísticas no banco de dados para melhorar o desempenho da execução da consulta. Você pode executá-lo em tabelas específicas, colunas específicas ou em todo o banco de dados.
ANALYZE [VERBOSE] [table_name [ (column_name [, ...] ) ] ];
Nessa sintaxe, `ANALYZE nome_da_tabela` atualiza as estatísticas da tabela especificada, enquanto `ANALYZE` sem argumentos processa todas as tabelas do banco de dados atual. A opção `VERBOSE` fornece uma saída detalhada.
Observação: O comando `ANALYZE` é executado automaticamente pelo daemon autovacuum, que é ativado por padrão no PostgreSQL. Isso reduz a necessidade de execução manual do `ANALYZE` em circunstâncias normais.
Exemplos
1. Analisando todo o banco de dados
ANALYZE;
Esse comando atualiza as estatísticas de todas as tabelas do banco de dados atual, garantindo que o planejador de consultas tenha informações atualizadas para otimização.
2. Analisando uma tabela específica
ANALYZE employees;
Aqui, as estatísticas da tabela `employees` são atualizadas, o que pode levar a uma execução de consulta mais eficiente envolvendo essa tabela.
3. Análise de colunas específicas
ANALYZE customers (first_name, last_name);
Este exemplo atualiza as estatísticas somente para as colunas `first_name` e `last_name` na tabela `customers`, o que é útil se as consultas filtrarem ou classificarem com frequência por essas colunas.
Dicas e práticas recomendadas
- Manutenção regular. Execute o `ANALYZE` regularmente, especialmente após alterações significativas nos dados, para manter o desempenho ideal da consulta. No entanto, se o autovacuum estiver ativado, a execução manual poderá ser redundante.
- Use com `VACUUM`. Combine `ANALYZE` com `VACUUM` para recuperar o espaço de armazenamento e atualizar as estatísticas em uma única operação de manutenção.
- Automatize com o Autovacuum. Ative o daemon autovacuum para que você execute automaticamente as tarefas `ANALYZE` nas tabelas, reduzindo a necessidade de intervenção manual.
- Alvo: áreas de alto impacto. Concentre-se nas tabelas e colunas que são consultadas com frequência ou que sofreram modificações substanciais para melhorar o desempenho.
- Monitorar estatísticas. Use a visualização `pg_stats` para verificar as estatísticas atuais de uma tabela ou coluna, fornecendo informações sobre os dados usados pelo planejador de consultas.
Nota de desempenho: A execução do `ANALYZE` pode aumentar a carga de E/S, o que pode afetar o desempenho temporariamente durante a execução, especialmente em tabelas grandes. Planeje a execução em horários fora de pico, se necessário.