

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Real-time SQL-Planverwaltung in RDS für Oracle
<a name="Oracle.RealTimeSPM"></a>

Ab Oracle Database 26ai (26.0.0.0) unterstützt Amazon RDS for Oracle die Verwaltung von SQL-Plänen in Echtzeit. Diese Funktion verhindert SQL-Leistungseinbußen, indem sie Änderungen am Ausführungsplan erkennt, sie mit früheren Plänen vergleicht und bei Bedarf den Plan mit der besten Leistung aus einer SQL-Plan-Baseline auswählt. Dieser Prozess ist transparent und erfordert kein manuelles Eingreifen.

Um die SQL-Planverwaltung in Echtzeit auf RDS for Oracle `DBMS_SPM.CONFIGURE` zu aktivieren, aktivieren Sie die auto Entwicklungsaufgabe. Anschließend verwenden Sie das `rdsadmin.rdsadmin_spm_util` Paket, um die SYS-owned Task-Parameter zu konfigurieren.

**Topics**
+ [-Übersicht](#Oracle.RealTimeSPM.Overview)
+ [Voraussetzungen](#Oracle.RealTimeSPM.Requirements)
+ [Aktivierung der SQL-Planverwaltung in Echtzeit](#Oracle.RealTimeSPM.Enabling)
+ [Verifizieren der Konfiguration](#Oracle.RealTimeSPM.Verifying)
+ [SQL-Planverwaltung in Echtzeit deaktivieren](#Oracle.RealTimeSPM.Disabling)
+ [rdsadmin\_spm\_util-Prozeduren](#Oracle.RealTimeSPM.Procedures)
+ [Überwachung der Basislinien von SQL-Plänen](#Oracle.RealTimeSPM.Monitoring)
+ [Überlegungen](#Oracle.RealTimeSPM.Considerations)
+ [Zugehörige Ressourcen](#Oracle.RealTimeSPM.Resources)

## -Übersicht
<a name="Oracle.RealTimeSPM.Overview"></a>

Eine SQL-Leistungsregression tritt auf, wenn der Oracle-Optimierer einen neuen Ausführungsplan auswählt, der schlechter abschneidet als ein früherer Plan. Real-time Die SQL-Planverwaltung automatisiert die Erkennung und Verhinderung dieser Regressionen.

Wenn die SQL-Planverwaltung in Echtzeit aktiviert ist, macht die Datenbank Folgendes:

1. Erkennt Änderungen des Ausführungsplans in Echtzeit.

1. Wertet die Leistung des neuen Plans im Vergleich zu früheren Plänen aus.

1. Erstellt oder aktualisiert automatisch SQL-Plan-Baselines.

1. Wählt den Plan mit der besten Leistung aus, um Regressionen zu verhindern.

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

Um die SQL-Planverwaltung in Echtzeit verwenden zu können, muss Ihre DB-Instance die folgenden Anforderungen erfüllen:
+ Oracle Database 2.6.ai oder höher
+ Oracle Enterprise Edition

## Aktivierung der SQL-Planverwaltung in Echtzeit
<a name="Oracle.RealTimeSPM.Enabling"></a>

Führen Sie die folgenden zwei Schritte aus, um die SQL-Planverwaltung in Echtzeit zu aktivieren.

### Schritt 1: Schalten Sie die auto SPM-Entwicklungsaufgabe ein
<a name="Oracle.RealTimeSPM.Enabling.Step1"></a>

Führen Sie die folgende Anweisung als Hauptbenutzer oder als Benutzer mit der DBA-Rolle aus:

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

### Schritt 2: Konfigurieren Sie die SYS-owned Aufgabenparameter
<a name="Oracle.RealTimeSPM.Enabling.Step2"></a>

Die `SYS_AUTO_SPM_EVOLVE_TASK` Aufgabe gehört SYS. RDS for Oracle stellt das `rdsadmin.rdsadmin_spm_util` Paket für diesen Zweck bereit.

Auf `ACCEPT_PLANS` einstellen, `TRUE` damit die Datenbank weiterentwickelte Pläne automatisch akzeptiert:

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

(Optional) Stellen Sie die alternative Planquelle auf`AUTO`:

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

## Verifizieren der Konfiguration
<a name="Oracle.RealTimeSPM.Verifying"></a>

Führen Sie die folgende Abfrage aus, um zu überprüfen, ob die Echtzeit-SQL-Planverwaltung aktiviert ist:

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

Die Abfrage kehrt zurück`AUTO`.

Führen Sie die folgende Abfrage aus, um die Task-Parametereinstellungen zu überprüfen:

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

## SQL-Planverwaltung in Echtzeit deaktivieren
<a name="Oracle.RealTimeSPM.Disabling"></a>

Führen Sie die folgende Anweisung aus, um die Echtzeit-SQL-Planverwaltung zu deaktivieren:

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

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

Das Paket bietet die folgenden Verfahren. `rdsadmin.rdsadmin_spm_util`


**rdsadmin\_spm\_util-Prozeduren**  

| Verfahren | Parameter | Standard | Description | 
| --- | --- | --- | --- | 
| `set_evolve_task_accept_plans` | `p_value` | `'TRUE'` | Legt den Parameter für fest. `ACCEPT_PLANS` `SYS_AUTO_SPM_EVOLVE_TASK` Gültige Werte sind `'TRUE'` und `'FALSE'`. | 
| `set_evolve_task_alternate_plan_source` | `p_value` | `'AUTO'` | Legt den `ALTERNATE_PLAN_SOURCE` Parameter für fest`SYS_AUTO_SPM_EVOLVE_TASK`. Gültige Werte sind `'AUTO'`, `'CURSOR_CACHE'`, `'AUTOMATIC_WORKLOAD_REPOSITORY'` und `'SQL_TUNING_SET'`. | 

## Überwachung der Basislinien von SQL-Plänen
<a name="Oracle.RealTimeSPM.Monitoring"></a>

Nachdem Sie die SQL-Planverwaltung in Echtzeit aktiviert haben, können Sie die Plan-Baselines überwachen, die von der Datenbank automatisch verwaltet werden:

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

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

Beachten Sie Folgendes, wenn Sie die SQL-Planverwaltung in Echtzeit verwenden:
+ Benutzer mit der DBA-Rolle können `DBMS_SPM.CONFIGURE` direkt anrufen. Für diesen Schritt ist kein Wrapper erforderlich.
+ Die `rdsadmin.rdsadmin_spm_util` Verfahren sind erforderlich, um die Aufgabenparameter für die SYS-owned `SYS_AUTO_SPM_EVOLVE_TASK` Aufgabe zu konfigurieren, da der Masterbenutzer keinen direkten Zugriff auf die SYS-owned Advisor-Aufgaben hat.
+ Real-time Die SQL-Planverwaltung funktioniert transparent. Sie müssen Ihren Anwendungscode nicht ändern.
+ SQL-Plan-Baselines belegen Speicherplatz im SYSAUX-Tablespace. Überwachen Sie die SYSAUX-Nutzung, nachdem Sie die Funktion aktiviert haben.
+ Bei den an übergebenen Parameterwerten `DBMS_SPM.CONFIGURE` (wie `'AUTO'` und`'OFF'`) wird zwischen Groß- und Kleinschreibung unterschieden. Verwenden Sie Werte in Großbuchstaben.

## Zugehörige Ressourcen
<a name="Oracle.RealTimeSPM.Resources"></a>
+ [DBMS\_SPM](https://docs.oracle.com/en/database/oracle/oracle-database/26/arpls/DBMS_SPM.html) in der Oracle-Datenbankdokumentation
+ [Verwaltung von SQL-Plan-Baselines](https://docs.oracle.com/en/database/oracle/oracle-database/26/tgsql/managing-sql-plan-baselines.html) in der Oracle-Datenbankdokumentation