

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Real-time Gestion des plans SQL dans RDS pour Oracle
<a name="Oracle.RealTimeSPM"></a>

À partir de la base de données Oracle 26ai (26.0.0.0), Amazon RDS pour Oracle prend en charge la gestion des plans SQL en temps réel. Cette fonctionnalité empêche les régressions de performances SQL en détectant les modifications du plan d'exécution, en les évaluant par rapport aux plans précédents et en sélectionnant le plan le plus performant à partir d'une base de plan SQL, selon les besoins. Ce processus est transparent et ne nécessite aucune intervention manuelle.

Pour activer la gestion des plans SQL en temps réel sur RDS pour Oracle, vous `DBMS_SPM.CONFIGURE` devez activer la tâche d'évolution automatique. Vous utilisez ensuite le `rdsadmin.rdsadmin_spm_util` package pour configurer les paramètres de la SYS-owned tâche.

**Topics**
+ [Présentation de](#Oracle.RealTimeSPM.Overview)
+ [Exigences](#Oracle.RealTimeSPM.Requirements)
+ [Permettre la gestion des plans SQL en temps réel](#Oracle.RealTimeSPM.Enabling)
+ [Vérification de la configuration](#Oracle.RealTimeSPM.Verifying)
+ [Désactivation de la gestion des plans SQL en temps réel](#Oracle.RealTimeSPM.Disabling)
+ [procédures rdsadmin\_spm\_util](#Oracle.RealTimeSPM.Procedures)
+ [Surveillance des bases de référence du plan SQL](#Oracle.RealTimeSPM.Monitoring)
+ [Considérations](#Oracle.RealTimeSPM.Considerations)
+ [Ressources connexes](#Oracle.RealTimeSPM.Resources)

## Présentation de
<a name="Oracle.RealTimeSPM.Overview"></a>

Une régression des performances SQL se produit lorsque l'optimiseur Oracle choisit un nouveau plan d'exécution moins performant qu'un plan précédent. Real-time La gestion des plans SQL automatise la détection et la prévention de ces régressions.

Lorsque la gestion des plans SQL en temps réel est activée, la base de données effectue les opérations suivantes :

1. Détecte les modifications du plan d'exécution en temps réel.

1. Évalue les performances du nouveau plan par rapport aux plans précédents.

1. Crée ou met à jour automatiquement les bases de référence du plan SQL.

1. Sélectionne le plan le plus performant pour éviter les régressions.

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

Pour utiliser la gestion des plans SQL en temps réel, votre instance de base de données doit répondre aux exigences suivantes :
+ Base de données Oracle 26ai ou version ultérieure
+ Oracle Enterprise Edition

## Permettre la gestion des plans SQL en temps réel
<a name="Oracle.RealTimeSPM.Enabling"></a>

Pour activer la gestion des plans SQL en temps réel, effectuez les deux étapes suivantes.

### Étape 1 : activer la tâche d'évolution automatique du SPM
<a name="Oracle.RealTimeSPM.Enabling.Step1"></a>

Exécutez l'instruction suivante en tant qu'utilisateur principal ou en tant qu'utilisateur doté du rôle DBA :

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

### Étape 2 : Configuration des paramètres de la SYS-owned tâche
<a name="Oracle.RealTimeSPM.Enabling.Step2"></a>

La `SYS_AUTO_SPM_EVOLVE_TASK` tâche appartient à SYS. RDS pour Oracle fournit le `rdsadmin.rdsadmin_spm_util` package à cette fin.

Réglez `ACCEPT_PLANS` pour `TRUE` que la base de données accepte automatiquement les plans évolués :

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

(Facultatif) Définissez la source de plan alternative sur `AUTO` :

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

## Vérification de la configuration
<a name="Oracle.RealTimeSPM.Verifying"></a>

Pour vérifier que la gestion des plans SQL en temps réel est activée, exécutez la requête suivante :

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

La requête est renvoyée`AUTO`.

Pour vérifier les paramètres de la tâche, exécutez la requête suivante :

```
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');
```

## Désactivation de la gestion des plans SQL en temps réel
<a name="Oracle.RealTimeSPM.Disabling"></a>

Pour désactiver la gestion des plans SQL en temps réel, exécutez l'instruction suivante :

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

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

Le `rdsadmin.rdsadmin_spm_util` package fournit les procédures suivantes.


**procédures rdsadmin\_spm\_util**  

| Procédure | Paramètre | Par défaut | Description | 
| --- | --- | --- | --- | 
| `set_evolve_task_accept_plans` | `p_value` | `'TRUE'` | Définit le `ACCEPT_PLANS` paramètre pour`SYS_AUTO_SPM_EVOLVE_TASK`. Les valeurs valides sont `'TRUE'` et `'FALSE'`. | 
| `set_evolve_task_alternate_plan_source` | `p_value` | `'AUTO'` | Définit le `ALTERNATE_PLAN_SOURCE` paramètre pour`SYS_AUTO_SPM_EVOLVE_TASK`. Les valeurs valides sont `'AUTO'`, `'CURSOR_CACHE'`, `'AUTOMATIC_WORKLOAD_REPOSITORY'` et `'SQL_TUNING_SET'`. | 

## Surveillance des bases de référence du plan SQL
<a name="Oracle.RealTimeSPM.Monitoring"></a>

Après avoir activé la gestion des plans SQL en temps réel, vous pouvez surveiller les lignes de base des plans que la base de données gère automatiquement :

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

## Considérations
<a name="Oracle.RealTimeSPM.Considerations"></a>

Lorsque vous utilisez la gestion de plans SQL en temps réel, tenez compte des points suivants :
+ Les utilisateurs dotés du rôle DBA peuvent appeler `DBMS_SPM.CONFIGURE` directement. Cette étape ne nécessite pas d'emballage.
+ Les `rdsadmin.rdsadmin_spm_util` procédures sont nécessaires pour configurer les paramètres de la SYS-owned `SYS_AUTO_SPM_EVOLVE_TASK` tâche, car l'utilisateur principal n'a pas d'accès direct aux tâches du SYS-owned conseiller.
+ Real-time La gestion des plans SQL fonctionne de manière transparente. Vous n'avez pas besoin de modifier le code de votre application.
+ Les lignes de base du plan SQL consomment de l'espace dans le tablespace SYSAUX. Surveillez l'utilisation de SYSAUX après avoir activé la fonctionnalité.
+ Les valeurs de paramètres transmises à `DBMS_SPM.CONFIGURE` (telles que `'AUTO'` et`'OFF'`) font la distinction entre majuscules et minuscules. Utilisez des valeurs en majuscules.

## Ressources connexes
<a name="Oracle.RealTimeSPM.Resources"></a>
+ [DBMS\_SPM ](https://docs.oracle.com/en/database/oracle/oracle-database/26/arpls/DBMS_SPM.html) dans la documentation de la base de données Oracle
+ [Gestion des bases de référence du plan SQL ](https://docs.oracle.com/en/database/oracle/oracle-database/26/tgsql/managing-sql-plan-baselines.html) dans la documentation de la base de données Oracle