View a markdown version of this page

Real-time SQL-Planverwaltung in RDS für Oracle - Amazon Relational Database Service

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.

-Ü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:

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

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

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

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

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 festSYS_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

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