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 vollständig verwalteten Indexberater, der die Abfragen verfolgt, die Ihre Datenbank regelmäßig verarbeitet. Der Indexberater analysiert diese Abfragen regelmäßig, um neue Indexe zu empfehlen, mit denen sich die Abfrageleistung verbessern lässt. Mit dem Index Advisor können Sie Leistungsprobleme bei Systemen und Abfragen erkennen und beheben.
Wie funktioniert der Index-Advisor?
Der Indexberater hilft Ihnen, die Abfrageverarbeitung zu verbessern, indem er Folgendes tut:
- Empfehlen Sie eine Reihe von Indexen mit SQL-Befehlen zum Erstellen von Indexen.
- Daten bereitstellen, mit denen Sie empfohlene Indexe bewerten können, z. B. geschätzte Speichergröße und Auswirkungen von Indexen auf eine Abfrage.
CREATE INDEX
-Befehl mit dem Datenbanknamen, dem Schemanamen, dem Tabellennamen und den Spaltennamen an. Die erfassten Anfragen sind alle normalisierten Anfragen, bei denen alle Literale entfernt wurden.
Indexempfehlungen werden im inaktiven Zustand verschlüsselt.
Beschränkungen
Der Indexberater für Cloud SQL for PostgreSQL hat die folgenden Einschränkungen:
- Der Indexberater gibt nur
CREATE INDEX
-Empfehlungen aus. - Der Index-Advisor unterstützt keine Instanzen mit den folgenden Konfigurationen:
- Cloud SQL Enterprise-Instanzen
- Lesereplikatinstanzen
Hinweise
Wenn Sie Empfehlungen für den Index Advisor erhalten möchten, müssen Sie die Cloud SQL Enterprise Plus-Version verwenden und Query Insights für Cloud SQL Enterprise Plus für Ihre Cloud SQL-Instanz aktivieren.
Erforderliche Rollen und Berechtigungen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud SQL Viewer (roles/cloudsql.viewer
) für das Projekt zuzuweisen, in dem sich die Cloud SQL-Instanz befindet, um die Berechtigungen zu erhalten, die Sie zum Abrufen von Empfehlungen des Index-Assistenten benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Abrufen von Empfehlungen des Index Advisor erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um Empfehlungen des Index Advisor zu erhalten:
-
databaseinsights.recommendations.query
-
databaseinsights.resourceRecommendations.query
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Empfehlungen für Indexberater aktivieren
So aktivieren Sie Empfehlungen für den Indexberater:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
. - Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen. .
- Klicken Sie in der Kachel Konfiguration auf Konfiguration bearbeiten.
- Maximieren Sie im Bereich Instanz anpassen den Eintrag Query Insights.
- Achten Sie darauf, dass Query Insights aktivieren aktiviert ist.
- Wählen Sie Enterprise Plus-Funktionen aktivieren aus, falls diese Option noch nicht ausgewählt ist.
- Wählen Sie Indexberater aktivieren aus.
- Klicken Sie auf Speichern.
Indexberaterempfehlungen deaktivieren
So deaktivieren Sie Empfehlungen für den Indexberater:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie in der Kachel Konfiguration auf Konfiguration bearbeiten.
- Maximieren Sie im Bereich Instanz anpassen den Eintrag Query Insights.
- Entfernen Sie das Häkchen aus dem Kästchen Indexberater aktivieren.
- Klicken Sie auf Speichern.
Empfehlungen des Indexberaters ansehen
Cloud SQL führt regelmäßig die Analyse des Indexberaters aus. Wenn Sie Empfehlungen des Indexberaters aufrufen möchten, verwenden Sie das Query Insights-Dashboard. Sie können sich die Empfehlungen des Indexberaters auch als Tabelle ansehen und abfragen oder jederzeit eine Analyse und einen Bericht anfordern.
Empfehlungen im Query Insights-Dashboard ansehen und filtern
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie auf Query Insights.
- Die Indexberaterempfehlungen werden in der Spalte Empfehlung im Abschnitt Top-Abfragen und -Tags angezeigt.
- Optional: Wenn Sie nur die Abfragen mit
CREATE INDEX
-Empfehlungen sehen möchten, fügen Sie einen Filter für Empfehlung: Indexe erstellen hinzu.
Empfehlungen für eine Abfrage ansehen
So rufen Sie Indexempfehlungen für eine bestimmte Abfrage auf:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie auf Query Insights.
- Klicken Sie im Bereich Top-Abfragen und -Tags auf Abfragen.
- So rufen Sie Empfehlungsdetails für eine Anfrage ab:
- Klicken Sie auf eine Anfrage, um mehr über die Empfehlungen für die ausgewählte Anfrage zu erfahren. Dazu gehören die folgenden Informationen:
- Leistungsauswirkung (hoch, mittel und niedrig): Die geschätzte Abfragegeschwindigkeit, nachdem alle empfohlenen Indexe erstellt wurden.
- Empfehlungen: Empfehlungen zum Erstellen von Indexen.
- Betroffene Tabellen: Die Anzahl der Tabellen, die beim Erstellen von Indexen betroffen sind.
- Zusätzlich benötigter geschätzter Speicherplatz: Die geschätzte Speichergröße, die zum Erstellen aller empfohlenen Indexe erforderlich ist.
- Anzahl der betroffenen Abfragen: Die Gesamtzahl der Abfragen im Arbeitslast, die von den Indexempfehlungen betroffen sind. Ein Index kann für mehrere Abfragen von Vorteil sein.
- Klicken Sie für eine bestimmte Abfrage auf Indexe erstellen, um detaillierte Empfehlungen zum Erstellen von Indexen zur Verbesserung der Abfrageleistung zu erhalten.
- Klicken Sie auf eine Anfrage, um mehr über die Empfehlungen für die ausgewählte Anfrage zu erfahren. Dazu gehören die folgenden Informationen:
Empfehlungen als Datenbanktabellenansicht ansehen
Die Ergebnisse finden Sie in den folgenden Tabellenansichten in den jeweiligen 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 wird jede Abfrage aufgeführt, für die der Berater einen oder mehrere neue Indexe empfiehlt. In jeder Zeile werden die Empfehlungen für die entsprechende Anfrage 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 bei der letzten Analyse des Indexberaters keine Empfehlungen gefunden werden, wird mit dieser Abfrage eine Tabelle ohne Zeilen zurückgegeben.
Da alle diese Berichte als normale Datenbankansichten vorhanden sind, können Sie Abfragen schreiben, mit denen Sie diese Informationen filtern oder präsentieren. Wenn Sie beispielsweise einen Bericht sehen möchten, in dem empfohlene Indexe mit der zugehörigen vollständigen Abfrage kombiniert werden, verknüpfen Sie die Ansichten google_db_advisor_workload_report
und google_db_advisor_workload_statements
über die 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 anfordern, dass Cloud SQL for PostgreSQL sofort eine Analyse ausführt und den Bericht anzeigt. Bei Cloud SQL for PostgreSQL müssen Sie nach dem Aktivieren des Indexberaters mindestens 15 Minuten warten, bevor Sie eine manuelle Analyse ausführen können. 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 tabellarischen Bericht mit der Beschreibung und dem geschätzten Speicherbedarf aller empfohlenen Indexe an. Wenn bei der Analyse keine neuen zu empfehlenden Indexe gefunden werden, enthält die Ansicht keine Zeilen.
Beachten Sie, dass die Nutzerrolle, mit der dieser Befehl ausgeführt wird, sich auf die angezeigten Empfehlungen auswirken kann. Cloud SQL for PostgreSQL beschränkt die Anzeige auf Indexempfehlungen, die auf Abfragen des aktuellen Datenbanknutzers basieren.
Empfohlene Indexe erstellen
Sie können empfohlene Indexe über das Query Insights-Dashboard oder über eine Datenbanktabellenansicht erstellen.
Empfohlenen Index über das Query Insights-Dashboard erstellen
So erstellen Sie einen empfohlenen Index über das Dashboard „Query Insights“:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie auf Query Insights.
- Klicken Sie in der Tabelle Top-Dimensionen nach Datenbanklast auf Abfragen.
- Klicken Sie für eine bestimmte Abfrage auf Create Indexes (Indizes erstellen).
- Klicken Sie auf Alle Indexbefehle kopieren. Die
CREATE INDEX
-Befehle werden in die Zwischenablage kopiert. - Stellen Sie über die Befehlszeile eine Verbindung zur primären Instanz her.
Führen Sie die Befehle aus, die in die Zwischenablage kopiert wurden, um die empfohlenen Indexe zu erstellen, z. B.:
CREATE INDEX ON "public"."demo_order" ("customer_id");
Empfohlenen Index mit einer Datenbanktabellenansicht erstellen
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. Dazu gehört auch, den Text in die Zwischenablage zu kopieren und in einen psql
-Prompt einzufügen.
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");
Betroffene Abfragen ansehen
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie auf Query Insights.
- Klicken Sie in der Tabelle Top-Dimensionen nach Datenbanklast auf Abfragen.
- Klicken Sie für eine bestimmte Anfrage auf Create indexes (Indizes erstellen).
- Klicken Sie auf Betroffene Abfragen anzeigen.
- Klicken Sie auf eine Abfrage, um Details zur betroffenen Abfrage aufzurufen.
Vom Indexberater verfolgte Abfragen 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 Anzahl der Ausführungen jeder Abfrage durch die Instanz
- Die Gesamtzeit, die die Instanz für die Verarbeitung dieser Abfragen benötigt.
- Die ID des Datenbanknutzers, der diese Abfragen ausführt
Erfasste 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();
Cloud SQL for PostgreSQL leert die Sammlung der verfolgten Abfragen des Indexberaters sofort.