Miglioramento delle prestazioni delle query utilizzando join adattivo - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Miglioramento delle prestazioni delle query utilizzando join adattivo

Panoramica

Join adattivo è una funzionalità di anteprima di Aurora PostgreSQL 17.4 che aiuta a migliorare le prestazioni delle query. Questa funzionalità è disabilitata per impostazione predefinita, ma è possibile abilitarla utilizzando i parametri GUC (Global User Configuration). Poiché si tratta di una funzionalità di anteprima, i valori dei parametri predefiniti potrebbero cambiare. Se abilitato, il join adattivo aiuta a ottimizzare le prestazioni delle query passando dinamicamente da un loop join nidificato a un hash join in runtime. Questo passaggio si verifica quando lo strumento di ottimizzazione di PostgreSQL ha scelto erroneamente un loop join nidificato a causa di stime di cardinalità imprecise.

Configurazione del join adattivo

È possibile controllare il join adattivo utilizzando questi tre parametri GUC:

Parametri di configurazione di join adattivo
Parametro GUC Descrizione Opzioni predefinite e di configurazione
apg_adaptive_join_crossover_multiplier Questo moltiplicatore funziona con il punto di incrocio delle righe per determinare quando passare da un loop nidificato a un hash join. Il punto di incrocio delle righe è il punto in cui lo strumento di ottimizzazione SQL stima che le operazioni di loop nidificato e hash join abbiano lo stesso costo. Un valore di moltiplicatore più elevato riduce la probabilità che il join adattivo passi a un hash join.

Controlla se Join adattivo è abilitato

  • Valore predefinito: -1 (disabilitato)

  • Intervallo valido: da -1 a DBL_MAX

  • Imposta su >= 1 per attivarla

apg_adaptive_join_cost_threshold Questo parametro imposta una soglia minima di costo delle query. Join adattivo si disattiva automaticamente per le query al di sotto di questa soglia. In questo modo si evita un sovraccarico prestazionale nelle query semplici in cui il costo della pianificazione di un join adattivo potrebbe superare i vantaggi del passaggio dal nested loop all’hash join.

Imposta la soglia di costo minima per la query

  • Valore predefinito: 100

  • Intervallo valido: da 0 a DBL_MAX

apg_enable_parameterized_adaptive_join Se abilitato, questo parametro estende la funzionalità join adattivo ai loop join nidificati parametrizzati. Per impostazione predefinita, il join adattivo funziona solo con loop join nidificati non parametrizzati, poiché è più probabile che questi traggano vantaggio dal passaggio all’hash join. I loop join nidificati parametrizzati in genere offrono prestazioni migliori, rendendo meno importante il passaggio all’hash join.

Controlla il comportamento del join adattivo per loop join nidificati

  • Valore predefinito: false

  • Valori validi: true/false

    • Se falso: funziona solo con loop join nidificati non parametrizzati

    • Se vero: funziona con loop join nidificati parametrizzati e non parametrizzati

Nota

Deve essere prima abilitato apg_adaptive_join_crossover_multiplier