Grundlegendes zu Statistiken
Wenn eine Abfrage ausgeführt wird, muss ein Plan erstellt werden, um zu entscheiden, wie auf die Daten zugegriffen werden soll. Wenn beispielsweise eine SELECT-Abfrage jede Zeile zurückgibt, gibt es keinen Vorteil, einen Index zu verwenden, und es wäre effizienter, die gesamte Tabelle zu scannen. In diesem Szenario ist es einfach, die Abfrage zu planen, aber die meisten Abfragepläne sind nicht so einfach zu lösen.
Stellen Sie sich ein Szenario vor, in dem Sie eine Abfrage ausführen, die nach jeder Bestellung zwischen 10,00 $ und 20,00 $ gesucht hat. Zunächst wissen wir nicht, ob die Abfrage alle Daten in der Tabelle oder nur eine kleine Teilmenge zurückgibt. Dieses Unbekannte macht es schwierig, die Abfragestrategie zu planen, bis die Daten angezeigt werden. Wenn wir wissen, dass die Tabelle Bestellungen enthält, die einen Kaufpreis zwischen 1,00 $ und 800,00 $ enthalten, könnte ein Index verwendet werden, um nach einer kleinen Teilmenge der Daten zu suchen. Es sind jedoch möglicherweise noch nicht genügend Informationen vorhanden, um den richtigen Abfrageplan zu generieren. In diesem Beispiel liegen die Bestellungen zwar zwischen $1,00 und $800,00, 95% von Bestellungen zwischen 10,00 $ und 20,00 $ und eine Überprüfung der Daten ist tatsächlich der effektivste Plan.
Mit Szenarien wie dem vorherigen Beispiel benötigt PostgreSQL detaillierte Statistiken, um den optimalen Abfrageplan verwenden zu können.
Um Planungs- und Ausführungsstatistiken zu überwachen, gibt es eine PostgreSQL-Erweiterung namens pg_stat_statements. pg_stat_statements ist in Azure Database for PostgreSQL standardmäßig aktiviert und ermöglicht Mitgliedern der pg_read_all_stats Rolle, Statistiken mithilfe mehrerer pg_stat Ansichten abzufragen. Die folgende Abfrage gibt Abfrageaktivität mithilfe der pg_stat_activity Ansicht zurück:
SELECT * FROM pg_stat_activity;
Deaktivieren von pg_stat_statements
Wenn Ihre Abfragen eindeutig sind und Sie dieselbe Abfrage nicht regelmäßig wiederholen, sind historische Abfragedaten weniger nützlich. Auch wenn Sie die pg_stat Ansichten nicht nutzen, bieten sie keinen Vorteil. Es gibt einen Aufwand für die Aufrechterhaltung der pg_stat_statements, der bis zu 50%betragen kann, und Sie können die Verfolgung von pg_stat_statements in diesen Szenarien deaktivieren.
Führen Sie die folgenden Schritte aus, um die Nachverfolgung von pg_stat_statementszu deaktivieren:
Wechseln Sie zum Azure-Portal, und wählen Sie Ihre Azure-Datenbank für PostgreSQL-Server aus.
Wählen Sie Serverparameter aus, und navigieren Sie zur Einstellung pg_stat_statements.track.
Wenn Sie die Nachverfolgung deaktivieren möchten, wählen Sie NONEaus.
Wenn Sie genauer nachverfolgen möchten, wählen Sie ALLEaus.
Die Standardeinstellung ist TOP-.
Wählen Sie Speichernaus.