Melhorar o desempenho de consultas usando junção adaptável
Visão geral
A junção adaptável é um recurso de versão prévia no Aurora PostgreSQL 17.4 que ajuda a melhorar o desempenho das consultas. Esse recurso está desabilitado por padrão, mas você pode habilitá-lo usando os parâmetros de configuração global do usuário (GUC). Como esse é um recurso de versão prévia, os valores padrão dos parâmetros podem mudar. Quando habilitada, a junção adaptável ajuda a otimizar o desempenho da consulta ao alternar dinamicamente de uma junção de loop aninhado para uma junção de hash em tempo de execução. Essa troca ocorre quando o otimizador do PostgreSQL escolhe incorretamente uma junção de loop aninhado devido a estimativas de cardinalidade imprecisas.
Configurar junção adaptável
Você pode controlar a junção adaptável usando estes três parâmetros de GUC:
Parâmetro de GUC | Descrição | Opções padrão e de configuração |
---|---|---|
apg_adaptive_join_crossover_multiplier | Esse multiplicador funciona com o ponto de cruzamento de linhas para determinar quando mudar de um loop aninhado para uma junção de hash. O ponto de cruzamento de linhas é onde o otimizador SQL estima que as operações de loop aninhado e junção de hash tenham o mesmo custo. Um valor multiplicador mais alto reduz a probabilidade de a junção adaptável mudar para uma junção de hash. |
Controla se a junção adaptável está habilitada
|
apg_adaptive_join_cost_threshold | Esse parâmetro define um limite mínimo de custo de consulta. A junção adaptável se desabilita automaticamente para consultas abaixo desse limite. Isso evita a sobrecarga de desempenho em consultas simples, nas quais o custo de planejar uma junção adaptável pode superar os benefícios de mudar de loop aninhado para junção de hash. |
Define o limite mínimo de custo para a consulta
|
apg_enable_parameterized_adaptive_join | Quando habilitado, esse parâmetro estende a funcionalidade de junção adaptável às junções de loop aninhado parametrizadas. Por padrão, a junção adaptável funciona somente com junções de loop aninhado não parametrizadas, pois é mais provável que elas se beneficiem da mudança para a junção de hash. As junções de loop aninhado parametrizadas geralmente têm melhor desempenho, tornando a mudança para a junção de hash menos essencial. |
Controla o comportamento de junção adaptável para junções de loop aninhado
notaRequer que |