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

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

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

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

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

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 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.CONFIGURE direkt anrufen. Für diesen Schritt ist kein Wrapper erforderlich.

  • Die rdsadmin.rdsadmin_spm_util Verfahren sind erforderlich, um Aufgabenparameter für die SYS-owned SYS_AUTO_SPM_EVOLVE_TASK Aufgabe 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