

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à.

# Real-time Gestione del piano SQL in RDS per Oracle
<a name="Oracle.RealTimeSPM"></a>

A partire da Oracle Database 26ai (26.0.0.0), Amazon RDS for Oracle supporta la gestione dei piani SQL in tempo reale. Questa funzionalità previene le regressioni delle prestazioni SQL rilevando le modifiche al piano di esecuzione, valutandole rispetto ai piani precedenti e selezionando il piano con le migliori prestazioni da una linea di base del piano SQL, in base alle esigenze. Questo processo è trasparente e non richiede un intervento manuale.

Per abilitare la gestione del piano SQL in tempo reale su RDS per Oracle, è `DBMS_SPM.CONFIGURE` necessario attivare l'attività di evoluzione automatica. Si utilizza quindi il `rdsadmin.rdsadmin_spm_util` pacchetto per configurare i parametri dell' SYS-owned attività.

**Topics**
+ [Panoramica di](#Oracle.RealTimeSPM.Overview)
+ [Requisiti](#Oracle.RealTimeSPM.Requirements)
+ [Abilitazione della gestione dei piani SQL in tempo reale](#Oracle.RealTimeSPM.Enabling)
+ [Verifica della configurazione](#Oracle.RealTimeSPM.Verifying)
+ [Disattivazione della gestione del piano SQL in tempo reale](#Oracle.RealTimeSPM.Disabling)
+ [procedure rdsadmin\_spm\_util](#Oracle.RealTimeSPM.Procedures)
+ [Monitoraggio delle linee di base del piano SQL](#Oracle.RealTimeSPM.Monitoring)
+ [Considerazioni](#Oracle.RealTimeSPM.Considerations)
+ [Risorse correlate](#Oracle.RealTimeSPM.Resources)

## Panoramica di
<a name="Oracle.RealTimeSPM.Overview"></a>

Una regressione delle prestazioni SQL si verifica quando l'ottimizzatore Oracle sceglie un nuovo piano di esecuzione con prestazioni peggiori rispetto a un piano precedente. Real-time La gestione del piano SQL automatizza il rilevamento e la prevenzione di queste regressioni.

Quando è abilitata la gestione del piano SQL in tempo reale, il database esegue le seguenti operazioni:

1. Rileva le modifiche al piano di esecuzione in tempo reale.

1. Valuta le prestazioni del nuovo piano rispetto ai piani precedenti.

1. Crea o aggiorna automaticamente le linee di base del piano SQL.

1. Seleziona il piano con le migliori prestazioni per prevenire le regressioni.

## Requisiti
<a name="Oracle.RealTimeSPM.Requirements"></a>

Per utilizzare la gestione del piano SQL in tempo reale, l'istanza DB deve soddisfare i seguenti requisiti:
+ Oracle Database 26ai o versioni successive
+ Oracle Enterprise Edition

## Abilitazione della gestione dei piani SQL in tempo reale
<a name="Oracle.RealTimeSPM.Enabling"></a>

Per abilitare la gestione del piano SQL in tempo reale, completa i due passaggi seguenti.

### Passaggio 1: attiva l'attività Auto SPM Evolve
<a name="Oracle.RealTimeSPM.Enabling.Step1"></a>

Esegui la seguente istruzione come utente principale o come utente con il ruolo DBA:

```
BEGIN
  DBMS_SPM.CONFIGURE('AUTO_SPM_EVOLVE_TASK', 'AUTO');
END;
/
```

### Fase 2: Configurare i parametri dell' SYS-owned attività
<a name="Oracle.RealTimeSPM.Enabling.Step2"></a>

L'`SYS_AUTO_SPM_EVOLVE_TASK`attività è di proprietà di SYS. RDS for Oracle fornisce il `rdsadmin.rdsadmin_spm_util` pacchetto per questo scopo.

Impostato `ACCEPT_PLANS` in `TRUE` modo che il database accetti automaticamente i piani evoluti:

```
EXEC rdsadmin.rdsadmin_spm_util.set_evolve_task_accept_plans('TRUE');
```

(Facoltativo) Imposta l'origine del piano alternativo su`AUTO`:

```
EXEC rdsadmin.rdsadmin_spm_util.set_evolve_task_alternate_plan_source('AUTO');
```

## Verifica della configurazione
<a name="Oracle.RealTimeSPM.Verifying"></a>

Per verificare che la gestione del piano SQL in tempo reale sia abilitata, esegui la seguente query:

```
SELECT parameter_value
FROM DBA_SQL_MANAGEMENT_CONFIG
WHERE parameter_name = 'AUTO_SPM_EVOLVE_TASK';
```

La query restituisce`AUTO`.

Per verificare le impostazioni dei parametri dell'attività, esegui la seguente query:

```
SELECT parameter_name, parameter_value
FROM DBA_ADVISOR_PARAMETERS
WHERE task_name = 'SYS_AUTO_SPM_EVOLVE_TASK'
  AND parameter_name IN ('ACCEPT_PLANS', 'ALTERNATE_PLAN_SOURCE');
```

## Disattivazione della gestione del piano SQL in tempo reale
<a name="Oracle.RealTimeSPM.Disabling"></a>

Per disabilitare la gestione del piano SQL in tempo reale, esegui la seguente istruzione:

```
BEGIN
  DBMS_SPM.CONFIGURE('AUTO_SPM_EVOLVE_TASK', 'OFF');
END;
/
```

## procedure rdsadmin\_spm\_util
<a name="Oracle.RealTimeSPM.Procedures"></a>

Il pacchetto fornisce le seguenti procedure`rdsadmin.rdsadmin_spm_util`.


**procedure rdsadmin\_spm\_util**  

| Procedura | Parametro | Predefinita | Description | 
| --- | --- | --- | --- | 
| `set_evolve_task_accept_plans` | `p_value` | `'TRUE'` | Imposta il parametro per. `ACCEPT_PLANS` `SYS_AUTO_SPM_EVOLVE_TASK` I valori validi sono `'TRUE'` e `'FALSE'`. | 
| `set_evolve_task_alternate_plan_source` | `p_value` | `'AUTO'` | Imposta il `ALTERNATE_PLAN_SOURCE` parametro per`SYS_AUTO_SPM_EVOLVE_TASK`. I valori validi sono `'AUTO'`, `'CURSOR_CACHE'`, `'AUTOMATIC_WORKLOAD_REPOSITORY'` e `'SQL_TUNING_SET'`. | 

## Monitoraggio delle linee di base del piano SQL
<a name="Oracle.RealTimeSPM.Monitoring"></a>

Dopo aver abilitato la gestione del piano SQL in tempo reale, è possibile monitorare le linee di base del piano gestite automaticamente dal database:

```
SELECT SQL_HANDLE, PLAN_NAME, ENABLED, ACCEPTED, AUTOPURGE
FROM DBA_SQL_PLAN_BASELINES
ORDER BY LAST_MODIFIED DESC;
```

## Considerazioni
<a name="Oracle.RealTimeSPM.Considerations"></a>

Quando utilizzi la gestione del piano SQL in tempo reale, considera quanto segue:
+ Gli utenti con il ruolo DBA possono chiamare `DBMS_SPM.CONFIGURE` direttamente. Questo passaggio non richiede un wrapper.
+ Le `rdsadmin.rdsadmin_spm_util` procedure sono necessarie per configurare i parametri dell' SYS-owned `SYS_AUTO_SPM_EVOLVE_TASK`attività, poiché l'utente principale non ha accesso diretto alle attività dell' SYS-ownedadvisor.
+ Real-time La gestione del piano SQL funziona in modo trasparente. Non è necessario modificare il codice dell'applicazione.
+ Le linee di base del piano SQL occupano spazio nella tablespace SYSAUX. Monitora l'utilizzo di SYSAUX dopo aver abilitato la funzionalità.
+ I valori dei parametri passati a `DBMS_SPM.CONFIGURE` (come `'AUTO'` e`'OFF'`) fanno distinzione tra maiuscole e minuscole. Usa valori in maiuscolo.

## Risorse correlate
<a name="Oracle.RealTimeSPM.Resources"></a>
+ [DBMS\_SPM](https://docs.oracle.com/en/database/oracle/oracle-database/26/arpls/DBMS_SPM.html) nella documentazione di Oracle Database
+ [Gestione delle linee di base del piano SQL nella documentazione di Oracle Database](https://docs.oracle.com/en/database/oracle/oracle-database/26/tgsql/managing-sql-plan-baselines.html)