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
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-Leistungsrückgänge, indem Änderungen am Ausführungsplan erkannt, anhand früherer Pläne bewertet und bei Bedarf aus einer SQL-Plan-Basislinie der Plan mit der besten Leistung ausgewählt wird. Dieser Prozess ist transparent und erfordert kein manuelles Eingreifen.
Um die SQL-Planverwaltung in Echtzeit auf RDS for Oracle zu aktivieren, verwenden Sie DBMS_SPM.CONFIGURE To, um die automatische Evolve-Aufgabe zu aktivieren. Anschließend verwenden Sie das rdsadmin.rdsadmin_spm_util Paket, um die SYS-owned Task-Parameter zu konfigurieren.
Themen
-Übersicht
Eine SQL-Leistungsregression tritt auf, wenn der Oracle-Optimierer einen neuen Ausführungsplan auswählt, der schlechter abschneidet als ein vorheriger Plan. Real-time Die SQL-Planverwaltung automatisiert die Erkennung und Verhinderung dieser Regressionen.
Wenn die Echtzeit-SQL-Planverwaltung aktiviert ist, führt die Datenbank Folgendes aus:
-
Erkennt Änderungen des Ausführungsplans in Echtzeit.
-
Bewertet die Leistung des neuen Plans im Vergleich zu früheren Plänen.
-
Erstellt oder aktualisiert automatisch SQL-Plan-Baselines.
-
Wählt den Plan mit der besten Leistung aus, um Regressionen zu verhindern.
Voraussetzungen
Um die SQL-Planverwaltung in Echtzeit verwenden zu können, muss Ihre DB-Instance die folgenden Anforderungen erfüllen:
-
Oracle Database 26ai oder höher
-
Oracle Enterprise Edition
Aktivierung der SQL-Planverwaltung in Echtzeit
Führen Sie die folgenden zwei Schritte aus, um die Verwaltung von SQL-Plänen in Echtzeit zu aktivieren.
Schritt 1: Schalten Sie die automatische SPM-Evolve-Aufgabe ein
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 Task-Parameter
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 gesetzt, TRUE damit die Datenbank weiterentwickelte Pläne automatisch akzeptiert:
EXEC rdsadmin.rdsadmin_spm_util.set_evolve_task_accept_plans('TRUE');
(Optional) Legen Sie die alternative Planquelle wie folgt festAUTO:
EXEC rdsadmin.rdsadmin_spm_util.set_evolve_task_alternate_plan_source('AUTO');
Verifizieren der Konfiguration
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ückAUTO.
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');
Deaktivierung der Echtzeit-SQL-Planverwaltung
Um die Echtzeit-SQL-Planverwaltung zu deaktivieren, führen Sie die folgende Anweisung aus:
BEGIN DBMS_SPM.CONFIGURE('AUTO_SPM_EVOLVE_TASK', 'OFF'); END; /
rdsadmin_spm_util-Prozeduren
Das Paket stellt die folgenden Prozeduren bereit. rdsadmin.rdsadmin_spm_util
| Verfahren | Parameter | Standard | Description |
|---|---|---|---|
|
|
|
|
Legt den Parameter für fest. |
|
|
|
|
Legt den |
Überwachung der Basislinien des SQL-Plans
Nachdem Sie die Echtzeit-SQL-Planverwaltung aktiviert haben, können Sie die Planbasislinien ü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
Beachten Sie Folgendes, wenn Sie die Echtzeit-SQL-Planverwaltung verwenden:
-
Benutzer mit der DBA-Rolle können
DBMS_SPM.CONFIGUREdirekt anrufen. Für diesen Schritt ist kein Wrapper erforderlich. -
Die
rdsadmin.rdsadmin_spm_utilVerfahren sind erforderlich, um Aufgabenparameter für die SYS-ownedSYS_AUTO_SPM_EVOLVE_TASKAufgabe zu konfigurieren, da der Hauptbenutzer keinen direkten Zugriff auf SYS-owned Advisor-Aufgaben hat. -
Real-time Die SQL-Planverwaltung funktioniert transparent. Sie müssen Ihren Anwendungscode nicht ändern.
-
SQL-Plan-Baselines verbrauchen Speicherplatz im SYSAUX-Tablespace. Überwachen Sie die SYSAUX-Nutzung, nachdem Sie die Funktion aktiviert haben.
-
Bei den übergebenen Parameterwerten
DBMS_SPM.CONFIGURE(wie'AUTO'und'OFF') wird zwischen Groß- und Kleinschreibung unterschieden. Verwenden Sie Werte in Großbuchstaben.
Zugehörige Ressourcen
-
DBMS_SPM
in der Oracle Database-Dokumentation -
Verwaltung von
SQL-Plan-Baselines in der Oracle Database-Dokumentation