View a markdown version of this page

Abfrageplanverwaltung - AWSPräskriptive Leitlinien

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.

Abfrageplanverwaltung

Änderungen von Statistiken, Einschränkungen, Umgebungseinstellungen, Abfrageparameter-Bindungen und Upgrades der PostgreSQL-Datenbank-Engine können eine Abfrageplanregression verursachen. Eine Abfrageplanregression liegt vor, wenn der Optimierer einen weniger optimalen Plan als vor einer bestimmten Änderung in der Datenbankumgebung auswählt.

In der Amazon Aurora PostgreSQL-Compatible Edition wurde die Funktion Query Plan Management (QPM) entwickelt, um die Anpassungsfähigkeit und Stabilität von Plänen zu gewährleisten, unabhängig von Änderungen der Datenbankumgebung, die zu einer Regression des Abfrageplans führen könnten. QPM bietet eine gewisse Kontrolle über den Optimierer. Mit QPM können Sie den Abfrageausführungsplan verwalten, der vom Optimierer für Ihre SQL-Abfragen generiert wurde. Der Abfrageausführungsplan zwingt den Optimierer, aus Ihren genehmigten Plänen für kritische Abfragen auszuwählen, um deren Leistung zu optimieren.

Unternehmen stellen Anwendungen und Datenbanken in der Regel global bereit oder verwalten mehrere Umgebungen für jede Anwendungsdatenbank, z. B. für Entwicklung, Qualitätssicherung, Staging, Vorproduktion, Test und Produktion. Die Verwaltung der Abfrageausführungspläne für jede Datenbank, in jeder Umgebung und für alleAWS-Regionen kann komplex und zeitaufwändig sein. QPM kann Amazon Aurora PostgreSQL-kompatible verwaltete Pläne von einer Datenbank in eine andere exportieren und importieren. Auf diese Weise können Sie den Abfrageausführungsplan zentral verwalten und Datenbanken global bereitstellen. Mit dieser Funktion können Sie eine Reihe von Plänen in einer Vorproduktionsdatenbank untersuchen, überprüfen, ob sie gut funktionieren, und sie dann in die Produktionsumgebung laden.

QPM bietet auch mehrere andere Vorteile. Beispielsweise können Sie QPM verwenden, um Ausführungspläne zu verbessern, die in Anwendungen nicht geändert werden können oder wenn der Anweisung keine Hinweise hinzugefügt werden können. QPM erkennt auch automatisch neue Pläne mit minimalen Kosten, die der Optimierer entdeckt, sodass Sie neben der Leistung auch weiterhin die Kosten optimieren können.

Es wird empfohlen, QPM zu aktivieren. Wenn QPM aktiviert ist, verwendet der Optimierer den von Ihnen genehmigten Mindestkostenplan. Dies hilft, Regressionen zu verhindern und reduziert den Zeitaufwand für die Verwaltung und Behebung suboptimaler Pläne.

Es gibt zwei verschiedene Ansätze für die Verwendung der QPM-Funktion: proaktiv und reaktiv. Der proaktive Ansatz soll dazu beitragen, Leistungsregressionen zu verhindern, und der reaktive Ansatz ist darauf ausgelegt, Leistungsregressionen zu erkennen und zu reparieren, nachdem sie aufgetreten sind. Sie können Ihren Ansatz für jede Abfrage auswählen. Für komplexe Abfragen, die anfällig für Regressionen sein könnten, oder für geschäftskritische Abfragen können Sie einen proaktiven Ansatz verwenden und die optimalen Pläne für diese Abfragen genehmigen. Wenn bei anderen Abfragen während der Laufzeit eine Regression des Abfrageplans auftritt, können Sie einen reaktiven Ansatz verwenden. Wenn Sie die Regression feststellen, ändern Sie den Status dieses Plans in,rejected sodass der Optimierer einen anderen, genehmigten Plan auswählt. Weitere Informationen finden Sie unter Bewährte Methoden für die Verwaltung von Aurora PostgreSQL-Abfrageplänen (Aurora-Dokumentation).

Wie funktioniert die Verwaltung von Abfrageplänen?

Plänen wird einer der folgenden Status zugewiesen:approved,unapprovedpreferred, oderrejected. Der Optimierer setzt den ersten generierten Plan für jede verwaltete Anweisung aufapproved und legt dann den Status zusätzlicher Pläne auf festunapproved. Später können Sie dieunapproved Pläne überprüfen und ihren Status inapprovedpreferred, oder ändernrejected. Weitere Informationen finden Sie unter Grundlegendes zur Verwaltung von Aurora PostgreSQL-Abfrageplänen (Aurora-Dokumentation).

Verwaltete Pläne können manuell oder automatisch erfasst werden. Der gebräuchlichste Ansatz besteht darin, Pläne für alle Anweisungen, die zwei- oder mehrmals ausgeführt werden, automatisch zu erfassen. Sie können Pläne für einen bestimmten Satz von Kontoauszügen jedoch auch manuell erfassen. Weitere Informationen finden Sie unter Capturing Aurora PostgreSQL-Ausführungspläne (Aurora-Dokumentation).

Nachdem Sie einen verwalteten Plan eingerichtet haben, verwendet der Optimierer für jede verwaltete Anweisung jenen kostengünstigstenpreferred oder aktiviertenapproved Plan. Ausführliche Informationen finden Sie unter Erfahren Sie, wie der Optimierer bestimmt, welche Pläne ausgeführt werden (Aurora-Dokumentation).

Anweisungen zur Konfiguration der QPM-Funktion in Amazon Aurora PostgreSQL-kompatiblen Geräten finden Sie unter Verwaltung von Abfrageausführungsplänen für Aurora PostgreSQL (Aurora-Dokumentation).

Einschränkungen

Um QPM verwenden zu können, müssen Sie sicherstellen, dass Sie die Anforderungen für unterstützte SQL-Anweisungen erfüllen, dass Ihre Anweisungen keine Systembeziehungen referenzieren und dass Ihre DB-Instance-Klasse über ausreichend vCPUs verfügt. Weitere Informationen finden Sie unter Unterstützte SQL-Anweisungen und Einschränkungen der Abfrageplanverwaltung (Aurora-Dokumentation).

Anwendungsfälle für die Abfrageplanverwaltung

  • Verhinderung einer Regression des Abfrageplans — Die Aktualisierung Ihrer Datenbankversion bietet viele Vorteile, z. B. verbesserte Leistung und Sicherheit, Zugriff auf neue Funktionen, Behebung bekannter Probleme und Einhaltung gesetzlicher Anforderungen. Es besteht jedoch das Risiko, dass Datenbankaktualisierungen bei einigen Abfragen zu Leistungseinbußen führen können. Dieses Risiko ist bei größeren Versionsupgrades höher, da sie Änderungen enthalten können, die möglicherweise nicht mit vorhandenen Anwendungsabfragen abwärtskompatibel sind. Die Implementierung von QPM kann dazu beitragen, Regressionen zu verhindern und die Leistung bei Systemänderungen zu stabilisieren. Wenn Sie Statistiken aktualisieren, einen Index hinzufügen, Parameter ändern oder auf eine neue Version von Amazon Aurora PostgreSQL Compatible upgraden, erkennt QPM einen neuen Plan, verwendet aber weiterhin den genehmigten Plan, wodurch die Planstabilität gewahrt wird.

  • Testfunktionen — Sie können den Planverlauf für alle verwalteten SQL-Anweisungen einsehen und beurteilen, ob neue PostgreSQL-Funktionen oder Planänderungen die Leistung verbessern. Sie können dann entscheiden, ob Sie diese Funktionen oder neue Pläne implementieren möchten. Weitere Informationen finden Sie unter Untersuchen von Aura-PostgreSQL-PostgreSQL-Abfrageplänen in der dba_plans-Ansicht (Aura-PostgreSQL-Abfrageplänen).

  • Verbesserung eines Plans — In einigen Fällen ist es möglicherweise sinnvoll, einen nicht optimalen Plan zu reparieren, anstatt ihn abzulehnen, zu deaktivieren oder zu löschen. Weitere Informationen finden Sie unter Pläne mithilfe von pg_hint_plan korrigieren (Aurora-Dokumentation).