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-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.
Themen
-Übersicht
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:
-
Erkennt Änderungen des Ausführungsplans in Echtzeit.
-
Wertet die Leistung des neuen Plans im Vergleich zu früheren Plänen aus.
-
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 2.6.ai oder höher
-
Oracle Enterprise Edition
Aktivierung der SQL-Planverwaltung in Echtzeit
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
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
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 aufAUTO:
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');
SQL-Planverwaltung in Echtzeit deaktivieren
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
Das Paket bietet die folgenden Verfahren. rdsadmin.rdsadmin_spm_util
| Verfahren | Parameter | Standard | Description |
|---|---|---|---|
|
|
|
|
Legt den Parameter für fest. |
|
|
|
|
Legt den |
Überwachung der Basislinien von SQL-Plänen
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
Beachten Sie Folgendes, wenn Sie die SQL-Planverwaltung in Echtzeit 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 die Aufgabenparameter für die SYS-ownedSYS_AUTO_SPM_EVOLVE_TASKAufgabe 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
-
DBMS_SPM
in der Oracle-Datenbankdokumentation -
Verwaltung von SQL-Plan-Baselines
in der Oracle-Datenbankdokumentation