Indexberater verwenden

Auf dieser Seite wird der Indexberater für Cloud SQL for PostgreSQL beschrieben und wie Sie die Indexempfehlungen aufrufen und anwenden können.

Cloud SQL for PostgreSQL bietet einen Indexberater, der die Abfragen verfolgt, die Ihre Datenbank verarbeitet. Diese Abfragen werden regelmäßig analysiert, um neue Indexe zu empfehlen, mit denen sich die Leistung der Abfragen erhöhen lässt.

Sie können die Empfehlungen des Indexberaters jederzeit als Tabelle anzeigen und abfragen oder jederzeit eine On-Demand-Analyse und einen Bericht anfordern.

Empfehlungen für Indexberater aktivieren

Fügen Sie der Cloud SQL for PostgreSQL-Instanz das Flag cloudsql.enable_index_advisor hinzu, um Empfehlungen für Indexberater zu aktivieren. Weitere Informationen zum Hinzufügen eines Flags zu Ihrer Instanz finden Sie unter Datenbank-Flags konfigurieren.

Indexberaterempfehlungen deaktivieren

Entfernen Sie das Flag cloudsql.enable_index_advisor aus Ihrer Cloud SQL for PostgreSQL-Instanz, um die Empfehlungen für Indexberater zu deaktivieren. Weitere Informationen zum Entfernen eines Flags aus Ihrer Instanz finden Sie unter Datenbank-Flags konfigurieren.

Empfehlungen des Indexberaters ansehen

Cloud SQL for PostgreSQL führt die Analyse des Indexberaters automatisch regelmäßig aus.

Sie können die Ergebnisse in den folgenden Tabellenansichten der einzelnen Datenbanken lesen:

  • google_db_advisor_recommended_indexes: listet alle empfohlenen neuen Indexe für jede Datenbank auf. Darüber hinaus sind Schätzungen des für jeden Index erforderlichen Speichers sowie der Anzahl der Abfragen enthalten, die sich auf jeden Index auswirken können.

  • google_db_advisor_workload_report: listet alle Abfragen auf, für die der Berater einen oder mehrere neue Indexe empfiehlt. In jeder Zeile sind die Empfehlungen für die relevante Abfrage zusammengefasst.

Wenn Sie beispielsweise die Ergebnisse der letzten Analyse der Indexempfehlung als Tabelle ansehen möchten, führen Sie die folgende Abfrage aus:

SELECT * FROM google_db_advisor_recommended_indexes;

Wenn die letzte Analyse des Indexberaters keine Empfehlungen findet, gibt diese Abfrage eine Tabelle ohne Zeilen zurück.

Da alle diese Berichte als gewöhnliche Datenbankansichten vorhanden sind, können Sie Abfragen schreiben, die diese Informationen filtern oder darstellen. Wenn Sie beispielsweise einen Bericht sehen möchten, in dem empfohlene Indexe mit der vollständig zugehörigen Abfrage gekoppelt sind, verknüpfen Sie google_db_advisor_workload_report und google_db_advisor_workload_statements-Ansichten in den entsprechenden query_id-Spalten:

SELECT DISTINCT recommended_indexes, query
FROM google_db_advisor_workload_report r, google_db_advisor_workload_statements s
WHERE r.query_id = s.query_id;

Indexanalyse manuell anfordern

Anstatt auf die nächste geplante Analyse des Indexberaters zu warten, können Sie Cloud SQL for PostgreSQL anfordern, sofort eine Analyse auszuführen und den Bericht anzeigen zu lassen. Bei Cloud SQL for PostgreSQL müssen Sie nach der Aktivierung des Index Advisors mindestens 15 Minuten warten, um eine manuelle Analyse auszuführen. Führen Sie dazu die folgende SQL-Funktion aus:

SELECT * FROM google_db_advisor_recommend_indexes();

Nach Abschluss der Analyse zeigt Cloud SQL for PostgreSQL einen tabellenformatierten Bericht mit der Beschreibung und den geschätzten Speicheranforderungen der empfohlenen Indexe an. Wenn die Analyse keine neuen empfohlenen Indexe findet, enthält die Ansicht keine Zeilen.

Beachten Sie, dass sich die Nutzerrolle, die diesen Befehl ausführt, auf die angezeigten Empfehlungen auswirken kann. Cloud SQL for PostgreSQL beschränkt die Anzeige auf Indexempfehlungen, die auf Abfragen basieren, die vom aktuellen Datenbanknutzer ausgegeben wurden.

Empfehlungen des Indexberaters anwenden

Die Spalte index der Ansicht google_db_advisor_recommended_indexes enthält in jeder Zeile eine vollständige PostgreSQL-DDL-Anweisung CREATE INDEX zum Generieren des in dieser Zeile empfohlenen Index.

Führen Sie die DDL-Anweisung genau wie angegeben aus, um die Empfehlung der jeweiligen Zeile anzuwenden. Dazu gehört auch das Kopieren in die Zwischenablage und das Einfügen in eine psql-Eingabeaufforderung.

Betrachten Sie beispielsweise diese Ausgabe aus der manuellen Ausführung einer Analyse mithilfe der im vorherigen Abschnitt beschriebenen Abfrage:

                    index                   | estimated_storage_size_in_mb
--------------------------------------------+------------------------------
 CREATE INDEX ON "School"."Students"("age") |                            3
(1 row)

Dieser Bericht enthält eine einzelne Empfehlung: das Hinzufügen eines einzelnen Spaltenindex in der Spalte age in der Tabelle Students des Schemas School. Geben Sie eine DDL-Abfrage wie im Bericht dargestellt ein, um diese Empfehlung anzuwenden:

CREATE INDEX ON "School"."Students"("age");

Die verfolgten Abfragen des Indexberaters anzeigen

Die Ansicht google_db_advisor_workload_statements enthält eine Liste aller Abfragen, die der Indexberater verfolgt hat, sowie wichtige Metadaten zu jeder Abfrage, z. B. die folgenden Messwerte:

  • Die Häufigkeit, mit der die Instanz die einzelnen Abfragen ausgeführt hat
  • Die Gesamtzeit, die die Instanz für die Verarbeitung dieser Abfragen benötigt
  • Die ID des Datenbanknutzers, der diese Abfragen ausführt

Die verfolgten Abfragen des Indexberaters löschen

Sie können das Verhalten des Indexberaters für eine Instanz zurücksetzen, indem Sie die verfolgten Abfragen löschen. Führen Sie dazu die folgende SQL-Funktion aus:

SELECT google_db_advisor_reset();

Cloud SQL for PostgreSQL leert die Sammlung der verfolgten Abfragen des Indexberaters sofort.