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.
Erfassung der SQL Ausführungspläne von Aurora Postgre
Das Aurora SQL Postgre-Abfrageplanmanagement bietet zwei verschiedene Modi für die Erfassung von Abfrageausführungsplänen: automatisch oder manuell. Sie wählen den Modus aus, indem Sie den Wert apg_plan_mgmt.capture_plans_baselines
auf automatic
oder manual
festlegen. Mithilfe der manuellen Planerfassung können Sie Ausführungspläne für bestimmte SQL Anweisungen erfassen. Alternativ können Sie mit der automatischen Planerfassung alle (oder nur die langsamsten) Pläne erfassen, die bei laufender Anwendung mindestens zwei Mal ausgeführt werden.
Bei der Planerfassung wird der Status des zuerst erfassten Plans einer verwalteten Anweisung vom Optimierer auf gesetz approved
. Der Status zusätzlich hinzugefügter Pläne, die für eine verwaltete Anweisung erfasst wurden, wird vom Optimierer auf festgeleg unapproved
. Gelegentlich wird jedoch mehr als ein Plan möglicherweise mit dem Status approved
gespeichert. Dies kann passieren, wenn für eine Anweisung mehrere Pläne gleichzeitig erstellt werden und der erste Plan für die Anweisung noch nicht übermittelt wurde.
Legen Sie den Parameter dba_plans
in der Parametergruppe der DB-Instance-Ebene fest, um die maximale Anzahl an Plänen zu bestimmen, die in der apg_plan_mgmt.max_plans
-Ansicht erfasst und gespeichert werden können. Damit der Parameter apg_plan_mgmt.max_plans
geändert werden und ein neuer Wert übernommen werden kann, muss die DB-Instance neu gestartet werden. Informieren Sie sich über den Parameter apg_plan_mgmt.max_plans, um weitere Informationen hierzu zu erhalten.
Manuelles Erfassen von Plänen für bestimmte SQL Anweisungen
Wenn Sie einen bekannten Satz von SQL Anweisungen verwalten müssen, fügen Sie die Anweisungen in eine SQL Skriptdatei ein und erfassen Sie die Pläne dann manuell. Im Folgenden finden Sie ein PSQL-Beispiel für die manuelle Erfassung von Abfrageplänen für eine Reihe von SQL Anweisungen.
psql>
SET apg_plan_mgmt.capture_plan_baselines = manual;
psql>
\i my-statements.sql
psql>
SET apg_plan_mgmt.capture_plan_baselines = off;
Nach der Erfassung eines Plans für jede SQL Anweisung fügt der Optimierer der apg_plan_mgmt.dba_plans
Ansicht eine neue Zeile hinzu.
Es wird empfohlen, in der SQL Skriptdatei EXPLAIN entweder EXPLAIN EXECUTE Oder-Anweisungen zu verwenden. Stellen Sie sicher, dass eine ausreichende Auswahl an Parameterwerten einzukalkulieren, damit alle relevanten Pläne erfasst werden.
Falls Sie einen besseren Plan als den Minimalkostenplan des Optimierers nutzen möchten, können Sie den Optimierer zur Verwendung dieses bevorzugten Plans zwingen, indem Sie einen oder mehrere Optimierungshinweise angeben. Geben Sie hierzu mindestens einen Optimierungshinweis an. Weitere Informationen finden Sie unter Reparieren von Plänen mit pg_hint_plan. Unter unapproved
erfahren Sie, wie Sie die Performance der approved
- und Auswerten der Performance von Plänen-Pläne vergleichen und diese genehmigen, ablehnen oder löschen.
Automatisches Erfassen von Plänen
Verwenden Sie die automatische Planerfassung u. a. in den folgenden Fällen:
Sie kennen die spezifischen SQL Anweisungen nicht, die Sie verwalten möchten.
Sie müssen Hunderte oder Tausende von SQL Kontoauszügen verwalten.
Ihre Anwendung verwendet einen ClientAPI. JDBCVerwendet beispielsweise unbenannte vorbereitete Anweisungen oder Massenmodusanweisungen, die nicht in psql ausgedrückt werden können.
So erfassen Sie Pläne automatisch:
Aktivieren Sie die automatische Planerfassung, indem Sie in der Parametergruppe der DB-Instance-Ebene
apg_plan_mgmt.capture_plan_baselines
aufautomatic
setzen. Weitere Informationen finden Sie unter Ändern von Parametern in einer DB-Parametergruppe in Amazon Aurora.Während der Ausführung der Anwendung erfasst der Optimierer Pläne für jede SQL Anweisung, die mindestens zweimal ausgeführt wird.
Da die Anwendung mit den Standardeinstellungen der Parameter für die Verwaltung von Abfrageplänen ausgeführt wird, erfasst der Optimierer Pläne für jede SQL Anweisung, die mindestens zweimal ausgeführt wird. Das Erfassen aller Pläne mit den Standardeinstellungen ist mit einem sehr geringen Laufzeitaufwand verbunden und kann in der Produktivumgebung erfolgen.
So deaktivieren Sie die automatische Planerfassung:
-
Setzen Sie in der Parametergruppe der DB-Instance-Ebene den Parameter
apg_plan_mgmt.capture_plan_baselines
aufoff
.
Erfahren Sie unter , wie Sie die Performance der nicht genehmigten Pläne messen und diese Pläne genehmigen, ablehnen oder lösche Auswerten der Performance von Plänen.