Bewährte Methoden für die Aurora-PostgreSQL-Abfrageplanverwaltung - Amazon Aurora

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.

Bewährte Methoden für die Aurora-PostgreSQL-Abfrageplanverwaltung

Mit der Abfrageplanverwaltung steuern Sie, wie und wann sich Abfrageverwaltungspläne ändern. Als DBA gehören zu Ihren Hauptzielen bei der Verwendung von QPM, Regressionen bei Änderungen an Ihrer Datenbank zu verhindern und zu kontrollieren, ob der Optimierer einen neuen Plan verwenden darf. Im Folgenden finden Sie einige empfohlene bewährte Methoden zur Verwendung der Abfrageplanverwaltung. Proaktive und reaktive Planverwaltungsansätze unterscheiden sich hinsichtlich der Frage, wie und wann neue Pläne zur Verwendung genehmigt werden.

Proaktive Planverwaltung zur Vermeidung von Performancerückgängen

Um Regressionen bei der Planleistung zu verhindern, entwickeln Sie den Basisplan weiter. Dazu führen Sie ein Verfahren aus, das die Leistung neu entdeckter Pläne mit der Leistung des vorhandenen Basisplans der genehmigten Pläne vergleicht und dann automatisch die schnellsten Pläne als neuen Basisplan genehmigt. Auf diese Weise verbessert sich die Ausgangsbasis der Pläne im Laufe der Zeit, da schnellere Pläne entdeckt werden.

  1. Bestimmen Sie in einer Entwicklungsumgebung die SQL-Anweisungen, die die größten Auswirkungen auf die Performance oder den Durchsatz des Systems haben. Erfassen Sie dann die Pläne für diese Anweisungen anhand der unter Manuelles Erfassen von Plänen für bestimmte SQL-Anweisungen und Automatisches Erfassen von Plänen beschriebenen Vorgehensweise.

  2. Exportieren Sie die erfassten Pläne aus der Entwicklungsumgebung und importieren Sie sie in die Produktionsumgebung. Weitere Informationen finden Sie unter Exportieren und Importieren von Plänen.

  3. Führen Sie in der Produktion Ihre Anwendung aus und erzwingen Sie die Verwendung genehmigter verwalteter Pläne. Weitere Informationen finden Sie unter Verwenden von Aurora PostgreSQL-Plänen. Fügen Sie bei laufender Anwendung auch neue Pläne hinzu, sobald diese vom Optimierer erkannt werden. Weitere Informationen finden Sie unter Automatisches Erfassen von Plänen.

  4. Analysieren Sie die nicht genehmigten Pläne und genehmigen Sie jene, die ordnungsgemäß funktionieren. Weitere Informationen finden Sie unter Auswerten der Performance von Plänen.

  5. Während Ihre Anwendung ausgeführt wird, verwendet der Optimierer die neuen Pläne bei Bedarf.

Sicherstellen der Planstabilität nach einem größeren Versions-Upgrade

Jede Hauptversion von PostgreSQL enthält Verbesserungen und Änderungen am Abfrageoptimierer, die auf eine Leistungssteigerung ausgelegt sind. Pläne zur Abfrageausführung, die in früheren Versionen vom Optimierer generiert wurden, können jedoch in neueren, aktualisierten Versionen zu Leistungseinbußen führen. Sie können das Abfrageplan-Management verwenden, um diese Leistungsprobleme zu beheben und die Planstabilität nach einem größeren Versions-Upgrade sicherzustellen.

Der Optimierer verwendet immer den kostengünstigsten genehmigten Plan, auch wenn mehr als ein genehmigter Plan für die gleiche Anweisung vorhanden ist. Nach einem Upgrade ermittelt der Optimierer möglicherweise neue Pläne, diese werden jedoch als nicht genehmigte Pläne gespeichert. Diese Pläne werden nur ausgeführt, wenn sie im reaktiven Planverwaltungsstil mit dem Parameter unapproved_plan_execution_threshold genehmigt wurden. Sie können die Planstabilität maximieren, indem Sie den proaktiven Planverwaltungsstil mit dem Parameter evolve_plan_baselines verwenden. Dadurch werden die Leistung der neuen Pläne mit den alten Plänen verglichen und Pläne genehmigt oder abgelehnt, die mindestens 10 % schneller sind als der nächstbeste Plan.

Nach dem Upgrade können Sie die Funktion evolve_plan_baselines verwenden, um die Planleistung vor und nach dem Upgrade mit Ihren Abfrageparameter-Bindungen zu vergleichen. Die folgenden Schritte gehen davon aus, dass Sie genehmigte verwaltete Pläne in Ihrer Produktionsumgebung verwendet haben, wie in Verwenden von Aurora PostgreSQL-Plänen ausgeführt.

  1. Führen Sie Ihre Anwendung vor dem Upgrade mit dem laufenden Abfrageplan-Manager aus. Fügen Sie bei laufender Anwendung neue Pläne hinzu, sobald diese vom Optimierer erkannt werden. Weitere Informationen finden Sie unter Automatisches Erfassen von Plänen.

  2. Bewerten Sie die Leistung jedes Plans. Weitere Informationen finden Sie unter Auswerten der Performance von Plänen.

  3. Analysieren Sie nach dem Upgrade Ihre genehmigten Pläne erneut mit der Funktion evolve_plan_baselines. Vergleichen Sie die Leistung vor und nach der Verwendung Ihrer Abfrageparameter-Bindungen. Wenn der neue Plan schnell ist, können Sie ihn zu Ihren genehmigten Plänen hinzufügen. Wenn er für dieselben Parameter-Bindungen schneller als ein anderer Plan ist, können Sie den langsameren Plan als „Rejected“ (Abgelehnt) markieren.

    Weitere Informationen finden Sie unter Genehmigen besserer Pläne. Referenzinformationen zu dieser Funktion finden Sie unter apg_plan_mgmt.evolve_plan_baselines.

Weitere Informationen finden Sie unter Sicherstellen einer konsistenten Leistung nach größeren Versions-Upgrades mit der Abfrageplanverwaltung der PostgreSQL-kompatiblen Edition von Amazon Aurora.

Anmerkung

Wenn Sie ein Upgrade der Hauptversion mithilfe der logischen Replikation oder mit AWS DMS durchführen, stellen Sie sicher, dass Sie das Schema apg_plan_mgmt replizieren, damit die vorhandenen Pläne auf die aktualisierte Instance kopiert werden. Weitere Informationen zur logischen Replikation finden Sie unter Verwenden der logischen Replikation, um ein Hauptversions-Upgrade für Aurora PostgreSQL durchzuführen.

Reaktive Planverwaltung zur Erkennung und Behebung von Performancerückgängen

Durch Überwachen Ihrer laufende Anwendung können Sie Pläne erkennen, die zu Performancerückgängen führen. Werden Rückgänge erkannt, können Sie die nicht funktionierenden Pläne manuell ablehnen oder reparieren. Führen Sie dazu die folgenden Schritte aus:

  1. Erzwingen Sie bei laufender Anwendung die Verwendung verwalteter Pläne und fügen Sie automatisch neu entdeckte Pläne als nicht genehmigte Pläne hinzu. Weitere Informationen erhalten Sie unter Verwenden von Aurora PostgreSQL-Plänen und Automatisches Erfassen von Plänen.

  2. Überwachen Sie die laufende Anwendung auf Performance-Regressionen.

  3. Setzen Sie den Status des Plans auf , wenn Sie eine Planregression feststelle rejected. Wenn der Optimierer die SQL-Anweisung das nächste Mal ausführt, wird der abgelehnte Plan automatisch ignoriert und stattdessen ein anderer genehmigter Plan verwendet. Weitere Informationen finden Sie unter Ablehnen oder Deaktivieren langsamerer Pläne.

    In einigen Fällen ist es möglicherweise sinnvoll, einen nicht funktionierenden Plan zu reparieren, anstatt ihn abzulehnen, zu deaktivieren oder zu löschen. Verwenden Sie die Erweiterung pg_hint_plan, um das Verbessern eines Plans zu testen. Mit pg_hint_plan nutzen Sie besondere Kommentare, um die üblicherweise vom Optimierer angewendete Planerstellungsmethode zu überschreiben. Weitere Informationen finden Sie unter Reparieren von Plänen mit pg_hint_plan.