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. Diese Abfragen werden regelmäßig analysiert, um neue Indexe zu empfehlen, mit denen sich die Leistung der Abfragen steigern lässt. Mit dem Indexberater können Sie Leistungsprobleme bei Systemen und Abfragen erkennen und beheben.
Funktionsweise des Indexberaters
Der Indexberater hilft Ihnen, die Abfrageverarbeitung zu verbessern, indem er Folgendes tut:
- Er empfiehlt eine Reihe von Indexen mit SQL-Befehlen zum Erstellen von Indexen.
- Er liefert Daten, mit denen Sie empfohlene Indexe bewerten können, z. B. die geschätzte Speichergröße und die Auswirkungen von Indexen auf eine Abfrage.
CREATE INDEX mit dem Datenbanknamen, Schemanamen, Tabellennamen und den Spaltennamen an. Bei den erfassten Abfragen handelt es sich um normalisierte Abfragen, bei denen alle Literale entfernt wurden.
Indexempfehlungen werden im inaktiven Zustand verschlüsselt.
Beschränkungen
Der Indexberater von Cloud SQL for PostgreSQL unterliegt den folgenden Beschränkungen:
- Der Indexberater bietet nur
CREATE INDEX-Empfehlungen. - Der Indexberater unterstützt keine Instanzen mit den folgenden Konfigurationen:
- Cloud SQL Enterprise-Instanzen
- Lesereplikatinstanzen
Hinweis
Wenn Sie Empfehlungen vom Indexberater erhalten möchten, müssen Sie die Cloud SQL Enterprise Plus-Version verwenden und Query Insights für die Cloud SQL Enterprise Plus-Version für Ihre Cloud SQL-Instanz aktivieren.
Erforderliche Rollen und Berechtigungen
Bitten Sie Ihren Administrator, Ihnen die
Cloud SQL-Betrachter (roles/cloudsql.viewer) IAM-Rolle für das Projekt zu gewähren, in dem sich die Cloud SQL-Instanz befindet,
um die Berechtigungen zu erhalten, die
Sie für Empfehlungen vom Indexberater 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 für Empfehlungen vom Indexberater erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen , um die notwendigen Berechtigungen anzuzeigen, die erforderlich sind:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind für Empfehlungen vom Indexberater erforderlich:
-
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 vom Indexberater:
-
Öffnen Sie in der Google Cloud Console die Cloud SQL-Instanzen Seite.
. - Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen. .
- Klicken Sie in der Kachel Konfiguration auf Konfiguration bearbeiten.
- Maximieren Sie im Bereich Instanz anpassen die Option Query Insights.
- Achten Sie darauf, dass Query Insights aktivieren aktiviert ist.
- Wählen Sie Enterprise Plus-Funktionen aktivieren aus, falls noch nicht geschehen.
- Wählen Sie Indexberater aktivieren aus.
- Klicken Sie auf Speichern.
Indexberaterempfehlungen deaktivieren
So deaktivieren Sie Empfehlungen vom Indexberater:
-
Öffnen Sie in der Google Cloud Console die Cloud SQL-Instanzen Seite.
- Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen.
- Klicken Sie in der Kachel Konfiguration auf Konfiguration bearbeiten.
- Maximieren Sie im Bereich Instanz anpassen die Option 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. Empfehlungen des Indexberaters können Sie im Query Insights-Dashboard ansehen. 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
-
Öffnen Sie in der Google Cloud Console die Cloud SQL-Instanzen Seite.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie auf Query Insights.
- Die Empfehlungen des Indexberaters 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:
-
Öffnen Sie in der Google Cloud Console die Cloud SQL-Instanzen Seite.
- 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.
- Führen Sie einen der folgenden Schritte aus, um Empfehlungsdetails für eine Abfrage zu erhalten:
- Klicken Sie auf eine Abfrage, um weitere Informationen zu den Empfehlungen für die ausgewählte Abfrage zu erhalten, einschließlich der folgenden Informationen:
- Leistungsauswirkungen (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 betroffen sind, wenn Indexe erstellt werden.
- Zusätzlicher geschätzter Speicherbedarf: Die geschätzte Speichergröße, die zum Erstellen aller empfohlenen Indexe erforderlich ist.
- Anzahl der betroffenen Abfragen: Die Gesamtzahl der Abfragen in der Arbeitslast, die von den Indexempfehlungen betroffen sind. Ein Index kann sich auf mehrere Abfragen auswirken.
- 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 Abfrage, um weitere Informationen zu den Empfehlungen für die ausgewählte Abfrage zu erhalten, einschließlich der folgenden Informationen:
Empfehlungen als Datenbanktabellenansicht ansehen
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. Jede Zeile fasst die Empfehlungen für die entsprechende Abfrage zusammen.
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, gibt diese Abfrage eine Tabelle ohne Zeilen zurück.
Da alle diese Berichte als normale Datenbankansichten vorhanden sind, können Sie Abfragen schreiben, die 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
google_db_advisor_workload_report und
google_db_advisor_workload_statements Ansichten in den
jeweiligen 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;
Manuell eine Indexanalyse anfordern
Anstatt auf die nächste geplante Analyse des Indexberaters zu warten, können Sie Cloud SQL for PostgreSQL auffordern, sofort eine Analyse auszuführen und den Bericht anzuzeigen. 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 Indexe empfohlen werden, 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 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 Query Insights-Dashboard:
-
Öffnen Sie in der Google Cloud Console die Cloud SQL-Instanzen Seite.
- 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 Indexe erstellen.
- Klicken Sie auf Alle Indexbefehle kopieren. Die Befehle
CREATE INDEXwerden 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 über eine Datenbanktabellenansicht erstellen
Die Spalte index der Ansicht google_db_advisor_recommended_indexes
enthält in jeder Zeile eine vollständige PostgreSQL-CREATE INDEX DDL
-Anweisung 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, sie in die Zwischenablage zu kopieren und in eine psql-Eingabeaufforderung 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
-
Öffnen Sie in der Google Cloud Console die Cloud SQL-Instanzen Seite.
- 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 Indexe erstellen.
- Klicken Sie auf Betroffene Abfragen anzeigen.
- Klicken Sie auf eine Abfrage, um Details zur betroffenen Abfrage zu erhalten.
Vom Indexberater erfasste 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 aufwendet
- Die ID des Datenbanknutzers, der diese Abfragen ausführt
Vom Indexberater erfasste Abfragen 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 sofort die Sammlung der erfassten Abfragen des Indexberaters.