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à.
Gestione del piano di interrogazione Aurora Postgres SQL
Con la gestione del piano di query attivata per il cluster Aurora Postgre SQL DB, l'ottimizzatore genera e archivia i piani di esecuzione delle query per ogni SQL istruzione che elabora più di una volta. L'ottimizzatore imposta sempre lo stato del primo piano generato dell'istruzione gestita su dba_plans
e lo archivia nella vista Approved
.
Il set di piani approvati salvati per un'istruzione gestita è noto come baseline del piano. Mentre l'applicazione è in corso, l'ottimizzatore potrebbe generare piani aggiuntivi per le istruzioni gestite. L'ottimizzatore imposta i piani acquisiti aggiuntivi su uno stato di Unapproved
.
In seguito, si può decidere se i piani Unapproved
vengono eseguiti correttamente e cambiarli in Approved
, Rejected
o Preferred
. A tale scopo, si utilizza la funzione apg_plan_mgmt.evolve_plan_baselines
o la funzione apg_plan_mgmt.set_plan_status
.
Quando l'ottimizzatore genera un piano per un'SQListruzione, la gestione del piano di query salva il piano nella tabella. apg_plan_mgmt.plans
Gli utenti del database cui è stato concesso il ruolo apg_plan_mgmt
possono visualizzare i dettagli del piano eseguendo una query sulla vista apg_plan_mgmt.dba_plans
. Ad esempio, la seguente query elenca i dettagli dei piani attualmente presenti nella vista per un cluster Aurora SQL Postgre DB non di produzione.
sql_hash
— Un identificatore per l'SQListruzione che è il valore hash per il testo normalizzato dell'istruzione. SQLplan_hash
: un identificatore univoco per il piano che è una combinazione disql_hash
e di un hash del piano.status
: lo stato del piano. L'ottimizzatore può eseguire un piano approvato.enabled
: indica se il piano è pronto per l'uso (true) o no (false).plan_outline
: una rappresentazione del piano che viene utilizzata per ricreare il piano di esecuzione effettivo. Gli operatori nella struttura ad albero vengono mappati agli operatori in uscita. EXPLAIN
La vista apg_plan_mgmt.dba_plans
contiene molte altre colonne contenenti tutti i dettagli del piano, ad esempio la data dell'ultimo utilizzo del piano. Per tutti i dettagli completi, consultare Riferimento per la vista apg_plan_mgmt.dba_plans per Aurora Postgre -Compatible Edition SQL.
Normalizzazione e hash SQL
Nella apg_plan_mgmt.dba_plans
vista, è possibile identificare un'istruzione gestita in base al relativo valore SQL hash. L'SQLhash viene calcolato su una rappresentazione normalizzata dell'SQListruzione che rimuove alcune differenze, come i valori letterali.
Il processo di normalizzazione di ogni SQL istruzione consente di risparmiare spazio e maiuscole, in modo che sia possibile continuare a leggere e comprendere l'essenza dell'istruzione. SQL La normalizzazione rimuove o sostituisce i seguenti elementi.
Commenti di blocco iniziali
La EXPLAIN parola chiave e le opzioni e EXPLAIN EXPLAIN ANALYZE
Spazi finali
Tutti i letterali
Ad esempio, considerare la seguente istruzione.
/*Leading comment*/ EXPLAIN SELECT /* Query 1 */ * FROM t WHERE x > 7 AND y = 1;
La gestione del piano di interrogazione normalizza questa dichiarazione come illustrato:
SELECT /* Query 1 */ * FROM t WHERE x > CONST AND y = CONST;
La normalizzazione consente di utilizzare lo stesso SQL hash per SQL istruzioni simili che potrebbero differire solo nei valori letterali o dei parametri. In altre parole, possono esistere più piani per lo stesso SQL hash, con un piano diverso che è ottimale in condizioni diverse.
Nota
Una singola SQL istruzione utilizzata con schemi diversi ha piani diversi perché è associata allo schema specifico in fase di esecuzione. Il planner utilizza le statistiche per l'associazione dello schema per scegliere il piano ottimale.
Per ulteriori informazioni su come l'ottimizzatore sceglie un piano, consultare Utilizzo dei piani gestiti per Aurora PostgreSQL. In questa sezione vengono fornite informazioni su come utilizzare EXPLAIN
e EXPLAIN ANALYZE
per visualizzare l'anteprima di un piano prima che venga effettivamente utilizzato. Per informazioni dettagliate, consultare Analisi del piano scelto dall'ottimizzatore. Per un'immagine che illustra il processo di scelta di un piano, consultare In che modo l'ottimizzatore sceglie quale piano eseguire..