

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 Aurora PostgreSQL
<a name="AuroraPostgreSQL.Optimize.CapturePlans"></a>

La gestione del piano di query di Aurora PostgreSQL offre due diverse modalità di acquisizione dei piani di esecuzione delle query: automatica o manuale. La modalità viene scelta impostando il valore di `apg_plan_mgmt.capture_plans_baselines` su `automatic` o su `manual`. Puoi acquisire i piani di esecuzione per specifiche istruzioni SQL utilizzando l'acquisizione manuale del piano. 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\$1plan\$1mgmt.max\$1plans](AuroraPostgreSQL.Optimize.Parameters.md#AuroraPostgreSQL.Optimize.Parameters.max_plans). 

## Acquisizione manuale dei piani per specifiche istruzioni SQL
<a name="AuroraPostgreSQL.Optimize.CapturePlans.Manual"></a>

Se hai un set di istruzioni SQL da gestire, inserisci le istruzioni in un file script SQL e quindi acquisisci manualmente i piani. Di seguito è riportato un esempio di psql per acquisire manualmente i piani di query per un set di istruzioni SQL.

```
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 istruzione SQL, l'ottimizzatore aggiunge una nuova riga alla visualizzazione `apg_plan_mgmt.dba_plans`.

Ti consigliamo di utilizzare le istruzioni EXPLAIN o EXPLUTE EXPLAIN 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\$1hint\$1plan](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.pg_hint_plan). Per confrontare le prestazioni dei piani `unapproved` e `approved` e approvarli, rifiutarli o eliminarli, consulta [Valutazione delle prestazioni del piano](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.EvaluatingPerformance). 

## Acquisizione automatica dei piani
<a name="AuroraPostgreSQL.Optimize.CapturePlans.Automatic"></a>

Utilizza l'acquisizione automatica dei piani per situazioni come le seguenti:
+ Non conosci le istruzioni SQL specifiche da gestire.
+ Hai centinaia o migliaia di istruzioni SQL da gestire.
+ L'applicazione utilizza un'API client. Ad esempio, JDBC utilizza le istruzioni preparate senza nome o le 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 database in Amazon Aurora](USER_WorkingWithParamGroups.Modifying.md). 

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

   Durante l'esecuzione dell'applicazione con le impostazioni predefinite dei parametri della gestione del piano di query, l'ottimizzatore acquisisce i piani per ogni istruzione SQL 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](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.EvaluatingPerformance). 