Verstehen von Statistiken
Wenn eine Abfrage ausgeführt wird, muss diese ein Plan erstellen, um zu entscheiden, wie auf die Daten zugegriffen werden soll. Wenn eine SELECT-Abfrage beispielsweise jede Zeile zurückgibt, hat die Verwendung eines Index keinen Vorteil, und es wäre effizienter, die gesamte Tabelle zu überprüfen. In diesem Szenario ist es einfach, die Abfrage zu planen. Die meisten Abfragepläne sind jedoch nicht so einfach zu lösen.
Angenommen, Sie führen eine Abfrage aus, die nach jeder Bestellung zwischen 10,00 und 20,00 US-Dollar sucht. Zunächst wissen Sie nicht, ob die Abfrage alle Daten in der Tabelle oder nur eine kleine Teilmenge zurückgibt. Diese Unwissenheit macht es schwierig, die Abfragestrategie zu planen, bevor die Daten angezeigt werden. Wenn Sie wissen, dass die Tabelle Bestellungen enthält, die einen Kaufpreis zwischen 1,00 USD und 800,00 USD enthalten, könnten Sie einen Index verwenden, 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.
In Szenarien wie dem vorherigen Beispiel benötigt PostgreSQL detaillierte Statistiken, um den optimalen Abfrageplan verwenden zu können.
Für die Überwachung von Planungs- und Ausführungsstatistiken gibt es eine PostgreSQL-Erweiterung namens pg_stat_statements. pg_stat_statements ist standardmäßig in Azure Database for PostgreSQL aktiviert und ermöglicht es Mitgliedern der Rolle pg_read_all_stats, Statistiken mithilfe mehrerer pg_stat-Sichten abzufragen. Die folgende Abfrage gibt die Abfrageaktivität mithilfe der Sicht pg_stat_activity zurück:
SELECT * FROM pg_stat_activity;
Deaktivieren von pg_stat_statements
Wenn Ihre Abfragen eindeutig sind und Sie die gleiche Abfrage nicht regelmäßig wiederholen, sind Abfrageverlaufsdaten weniger nützlich. Wenn Sie zudem keine pg_stat-Sichten verwenden, profitieren Sie nicht davon. 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 Szenarios deaktivieren.
Führen Sie die folgenden Schritte aus, um die Nachverfolgung von pg_stat_statements zu deaktivieren:
Navigieren Sie zum Azure-Portal, und wählen Sie Ihren Azure Database for PostgreSQL-Server aus.
Klicken Sie auf Serverparameter, und navigieren Sie zur Einstellung pg_stat_statements.track.
Wenn Sie die Nachverfolgung deaktivieren möchten, wählen Sie KEINE aus.
Wählen Sie ALLE für eine genauere Nachverfolgung aus.
Die Standardeinstellung lautet Top.
Wählen Sie Speichern aus.