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. Obwohl die Bestellungen in diesem Beispiel einen Kaufpreis von 1,00 USD bis 800,00 USD aufweisen, liegt der Preis von 95 % der Bestellungen zwischen 10,00 und 20,00 USD, 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äten 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. Wenn Sie die pg_stat Ansichten nicht verwenden, bieten sie keinen Vorteil. Es fällt ein Mehraufwand für die Wartung von pg_stat_statements an, der bis zu 50 Prozent betragen kann, und Sie können die Nachverfolgung von pg_stat_statements in diesen Szenarien deaktivieren.
Führen Sie die folgenden Schritte aus, um die Nachverfolgung von pg_stat_statements zu 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 NONE aus.
Um eine genauere Nachverfolgung zu ermöglichen, wählen Sie ALLE aus.
Die Standardeinstellung ist TOP.
Wählen Sie "Speichern" aus.

