Acquisizione dei piani di esecuzione di Aurora Postgre SQL - 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à.

Acquisizione dei piani di esecuzione di Aurora Postgre SQL

La gestione dei piani di SQL query di Aurora Postgre offre due diverse modalità per acquisire i piani di esecuzione delle query, automatiche o manuali. La modalità viene scelta impostando il valore di apg_plan_mgmt.capture_plans_baselines su automatic o su manual. È possibile acquisire i piani di esecuzione per SQL istruzioni specifiche utilizzando l'acquisizione manuale dei piani. In alternativa, puoi acquisire tutti i piani (o quelli più lenti) che vengono eseguiti due o più volte durante l'esecuzione dell'applicazione utilizzando l'acquisizione automatica del piano.

Durante l'acquisizione dei piani, l'ottimizzatore imposta lo stato del primo piano acquisito dell'istruzione gestita su approved. L'ottimizzatore imposta lo stato di qualsiasi altro piano acquisito per un'istruzione gestita su unapproved. Tuttavia, a volte, più di un piano potrebbe essere salvato con lo stato approved. Ciò può accadere quando vengono creati più piani per un'istruzione in parallelo e prima che venga eseguito il commit del primo piano per l'istruzione.

Per controllare il numero massimo di piani che possono essere acquisiti e archiviati nella visualizzazione dba_plans, imposta il parametro apg_plan_mgmt.max_plans nel gruppo di parametri a livello di istanza database. La modifica del parametro apg_plan_mgmt.max_plans richiede il riavvio dell'istanza database per rendere effettivo il nuovo valore. Per ulteriori informazioni, vedi il parametro apg_plan_mgmt.max_plans.

Acquisizione manuale dei piani per dichiarazioni specifiche SQL

Se hai una serie nota di SQL istruzioni da gestire, inserisci le istruzioni in un file di SQL script e poi acquisisci manualmente i piani. Di seguito viene mostrato un esempio psql di come acquisire manualmente i piani di interrogazione per un insieme di SQL istruzioni.

psql> SET apg_plan_mgmt.capture_plan_baselines = manual; psql> \i my-statements.sql psql> SET apg_plan_mgmt.capture_plan_baselines = off;

Dopo aver acquisito un piano per ogni SQL istruzione, l'ottimizzatore aggiunge una nuova riga alla vista. apg_plan_mgmt.dba_plans

Si consiglia di utilizzare una delle due EXPLAIN EXPLAIN EXECUTE istruzioni nel file di script. SQL Assicurati di includere abbastanza variazioni nei valori dei parametri per acquisire tutti i piani di interesse.

Se conosci un piano migliore del piano a costo minimo dell'ottimizzatore, puoi forzare l'ottimizzatore a utilizzare il piano migliore. Per farlo, specifica uno o più hint dell'ottimizzatore. Per ulteriori informazioni, consulta Correzione dei piani mediante pg_hint_plan. Per confrontare le prestazioni dei piani unapproved e approved e approvarli, rifiutarli o eliminarli, consulta Valutazione delle prestazioni del piano.

Acquisizione automatica dei piani

Utilizza l'acquisizione automatica dei piani per situazioni come le seguenti:

  • Non conosci le SQL istruzioni specifiche che desideri gestire.

  • Hai centinaia o migliaia di SQL rendiconti da gestire.

  • L'applicazione utilizza un clientAPI. Ad esempio, JDBC utilizza istruzioni preparate senza nome o istruzioni in modalità bulk che non possono essere espresse in psql.

Per acquisire i piani automaticamente
  1. Attivare l'acquisizione automatica dei piani impostando apg_plan_mgmt.capture_plan_baselines su automatic nel gruppo di parametri a livello di istanza database. Per ulteriori informazioni, consulta Modifica dei parametri in un gruppo di parametri DB in .

  2. Durante l'esecuzione dell'applicazione, l'ottimizzatore acquisisce i piani per ogni SQL istruzione che viene eseguita almeno due volte.

    Quando l'applicazione viene eseguita con le impostazioni predefinite dei parametri di gestione del piano di query, l'ottimizzatore acquisisce i piani per ogni SQL istruzione che viene eseguita almeno due volte. L'acquisizione di tutti i piani mentre si utilizzano i valori predefiniti ha un overhead di runtime molto ridotto e può essere abilitato in produzione.

Per disattivare l'acquisizione automatica dei piani
  • Impostare il parametro apg_plan_mgmt.capture_plan_baselines su off nel gruppo di parametri a livello di istanza database.

Per misurare le prestazioni dei piani non approvati e approvarli, rifiutarli o eliminarli, consulta Valutazione delle prestazioni del piano.