Indexberater verwenden

Auf dieser Seite wird der Indexberater von Cloud SQL for PostgreSQL beschrieben und wie Sie seine 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 steigern lässt.

Sie können sich die Empfehlungen des Indexberaters als Tabelle ansehen und abfragen oder jederzeit eine Analyse und einen Bericht anfordern.

Indexberaterempfehlungen aktivieren

Wenn Sie Empfehlungen für Indexberater aktivieren möchten, richten Sie Gemini in Datenbanken ein.

Indexberaterempfehlungen deaktivieren

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

Indexberaterempfehlungen ansehen

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

Die Ergebnisse finden Sie in den folgenden Tabellenansichten in jeder Ihrer Datenbanken:

  • google_db_advisor_recommended_indexes: Hier werden alle empfohlenen neuen Indexe für jede Datenbank aufgelistet. Außerdem enthält er Schätzungen für den für jeden Index erforderlichen Speicherplatz und die Anzahl der Abfragen, auf die sich jeder Index auswirken kann.

  • google_db_advisor_workload_report: Hier werden alle Abfragen aufgelistet, für die der Berater einen oder mehrere neue Indexe empfiehlt. In jeder Zeile werden die Empfehlungen für die entsprechende Suchanfrage zusammengefasst.

Wenn Sie beispielsweise die Ergebnisse der letzten Analyse der Indexempfehlung in Tabellenform sehen möchten, führen Sie diese Abfrage aus:

SELECT * FROM google_db_advisor_recommended_indexes;

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

Da alle diese Berichte als normale Datenbankansichten vorliegen, können Sie Abfragen schreiben, mit denen diese Informationen gefiltert oder dargestellt werden. Wenn Sie beispielsweise einen Bericht mit empfohlenen Indexen und der zugehörigen vollständigen Abfrage sehen möchten, können Sie die Ansichten google_db_advisor_workload_report und google_db_advisor_workload_statements über die jeweiligen query_id-Spalten zusammenführen:

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 anfordern, dass Cloud SQL for PostgreSQL sofort eine Analyse ausführt und den Bericht anzeigt. Bei Cloud SQL for PostgreSQL müssen Sie mindestens 15 Minuten warten, nachdem Sie den Indexierungsberater aktiviert haben, 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 Bericht in Tabellenform mit der Beschreibung und den geschätzten Speicheranforderungen aller empfohlenen Indexe an. Wenn die Analyse keine neuen zu empfehlenden Indexe findet, enthält die Ansicht keine Zeilen.

Die Nutzerrolle, mit der dieser Befehl ausgeführt wird, kann sich auf die angezeigten Empfehlungen auswirken. Cloud SQL for PostgreSQL beschränkt die Anzeige auf Indexempfehlungen, die auf Abfragen des aktuellen Datenbanknutzers basieren.

Empfehlungen des Indexberaters anwenden

Die Spalte index der Tabelle 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 diese DDL-Anweisung genau wie dargestellt aus, um die Empfehlung dieser Zeile anzuwenden. Das gilt auch für das Kopieren in die Zwischenablage und das Einfügen in einen psql-Prompt.

Betrachten Sie beispielsweise diese Ausgabe bei 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 einzige Empfehlung: Fügen Sie der Spalte age in der Tabelle Students des Schemas School einen Index mit einer einzelnen Spalte hinzu. Geben Sie eine DDL-Abfrage wie im Bericht dargestellt ein, um diese Empfehlung anzuwenden:

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

Getrackte Abfragen des Indexberaters ansehen

Die Ansicht google_db_advisor_workload_statements enthält eine Liste aller Suchanfragen, die der Indexberater erfasst hat, sowie wichtige Metadaten für jede Anfrage, z. B. die folgenden Messwerte:

  • Die Häufigkeit, mit der die Instanz jede Abfrage 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

Gespeicherte Abfragen des Indexberaters löschen

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

SELECT google_db_advisor_reset();

In Cloud SQL for PostgreSQL wird die Sammlung der erfassten Abfragen des Indexberaters sofort geleert.