AlloyDB for PostgreSQL bietet einen 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.
Sie können die Empfehlungen des Indexberaters auf folgende Weise nutzen:
- Sehen Sie sich die Empfehlungen im Query Insights-Dashboard in derGoogle Cloud Console an und wenden Sie sie an.
- Fragen Sie die Empfehlungen direkt als Datenbanktabellenansichten ab.
- Sie können jederzeit eine On-Demand-Analyse und einen Bericht anfordern.
Weitere Informationen zur Funktionsweise des Indexberaters finden Sie unter Übersicht Indexberater.
Hinweis
Bevor Sie den Indexberater verwenden, müssen Sie die folgenden Anforderungen erfüllen.
Erforderliche Erweiterungen aktivieren
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie in der Spalte Ressourcenname auf einen Cluster.
Klicken Sie auf der Seite Query Insights auf Abfrageeinstellungen bearbeiten.
Klicken Sie auf Indexberater aktivieren.
Empfehlungen des Indexberaters ansehen
AlloyDB führt regelmäßig die Analyse des Indexberaters aus. Sie können die resultierenden Indexempfehlungen im Dashboard Query Insights in der Google Cloud Console oder durch direktes Abfragen von Datenbanktabellenansichten aufrufen.
Empfehlungen in Query Insights ansehen
AlloyDB integriert den Indexberater in Query Insights und erweiterte Query Insights in derGoogle Cloud -Konsole.
Wenn der Indexberater fehlende B-Baum- oder ScaNN-Vektorsuchindexe identifiziert, die die Abfrageleistung verbessern können, werden im Dashboard Query Insights Empfehlungen und Hinweise des Indexberaters in den folgenden Ansichten angezeigt:
Wählen Sie auf der Seite Query Insights im Bereich Top-Dimensionen nach Datenbanklast den Tab Abfragen aus. In der Tabelle wird in der Spalte Empfehlungen neben jeder Abfrage, für die es Indexberaterempfehlungen gibt, der Link Indexe erstellen angezeigt. Sie können auch einen Filter für Empfehlung: Indexe erstellen hinzufügen, um nur Abfragen mit Indexempfehlungen aufzurufen.
Wenn Sie eine Abfrage aus der Tabelle Abfragen auswählen, wird die Seite Abfragedetails geöffnet. Dort finden Sie die Karte Indexempfehlung in der Beispielansicht des Abfrageplans und die Tabelle Empfohlene Indexe. In diesen Ansichten werden die geschätzten Auswirkungen auf die Leistung (hoch, mittel oder niedrig), der empfohlene Indextyp und die Zieltabelle, der zusätzlich erforderliche geschätzte Speicherplatz, die Anzahl der betroffenen Tabellen und die Anzahl der betroffenen Abfragen angezeigt.
Wenn Sie auf Indexe erstellen (oder bei einer Empfehlung auf Details ansehen) klicken, wird der Bereich Indexe erstellen, um die Abfrageleistung zu verbessern geöffnet. In diesem Bereich können Sie die empfohlenen
CREATE INDEX-DDL-Anweisungen prüfen, die geschätzte Verbesserung der Ausführungszeit ansehen, auf Betroffene Abfragen anzeigen klicken, um alle Arbeitslastabfragen zu prüfen, die vom empfohlenen Index profitieren, und die Befehle kopieren oder direkt in AlloyDB Studio öffnen.
Eine detaillierte Anleitung zum Konfigurieren der Aktualisierungshäufigkeit für Empfehlungen, zum Filtern von Empfehlungen und zum Erstellen empfohlener Indexe in derGoogle Cloud Console finden Sie unter AlloyDB for PostgreSQL-Indexberater mit Query Insights verwenden und Abfrageleistung mit erweiterten Query Insights-Funktionen verbessern.
Empfehlungen mithilfe von Datenbankansichten ansehen
Sie können die Ergebnisse des Indexberaters auch über zwei Tabellenansichten in jeder Ihrer Datenbanken lesen:
google_db_advisor_recommended_indexes: Hier werden alle empfohlenen neuen Indexe für die 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_reportlistet jede Abfrage auf, für die der Advisor einen oder mehrere neue Indexe empfiehlt. In jeder Zeile werden die Empfehlungen für die entsprechende Abfrage 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 ergibt, 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 Informationen auf beliebige Weise filtern oder darstellen. Wenn Sie beispielsweise einen Bericht sehen möchten, in dem empfohlene Indexe mit der zugehörigen vollständigen Abfrage verknüpft sind, verbinden Sie die Ansichten google_db_advisor_workload_report und google_db_advisor_workload_statements über die 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;
Indexanalyse manuell anfordern
Anstatt auf die nächste geplante Analyse des Indexberaters zu warten, können Sie AlloyDB auffordern, sofort eine Analyse auszuführen und den Bericht anzuzeigen. Führen Sie dazu die folgende SQL-Funktion aus:
SELECT * FROM google_db_advisor_recommend_indexes();
Nach Abschluss der Analyse zeigt AlloyDB einen tabellarischen Bericht mit der Beschreibung und dem geschätzten Speicherbedarf aller empfohlenen Indexe an. Wenn bei der Analyse keine neuen Indexe gefunden werden, die empfohlen werden können, enthält die Ansicht keine Zeilen.
Beachten Sie, dass die PostgreSQL-Nutzerrolle, die diesen Befehl ausführt, die angezeigten Empfehlungen beeinflussen kann. Wenn diese Abfrage von postgres oder einem anderen Nutzer mit der Rolle alloydbsuperuser ausgeführt wird, zeigt AlloyDB alle aktuellen Empfehlungen des Indexberaters an. Andernfalls beschränkt AlloyDB die Anzeige auf Indexempfehlungen, die auf Abfragen des aktuellen Datenbanknutzers basieren.
Empfehlungen des Indexberaters anwenden
Im Query Insights-Dashboard in der Google Cloud Console können Sie für eine Abfrage auf Indexe erstellen klicken, dann auf Alle Indexbefehle kopieren (oder auf Befehle in Studio öffnen, um die CREATE INDEX-Anweisungen in AlloyDB Studio zu öffnen) und die Befehle dann auf Ihrer primären Instanz ausführen. Eine detaillierte Anleitung finden Sie unter Empfohlene Indexe in Query Insights erstellen.
Wenn Sie eine Datenbankansicht direkt abfragen, enthält die Spalte index der Ansicht google_db_advisor_recommended_indexes 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, dass Sie es in die Zwischenablage kopieren und in einen psql-Prompt einfü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 neuen Index mit einer einzelnen Spalte hinzu. Geben Sie eine DDL-Abfrage genau wie im Bericht dargestellt ein, um diese Empfehlung anzuwenden:
CREATE INDEX ON "School"."Students"("age");
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:
- Wie oft die Instanz diese 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
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();
AlloyDB leert sofort die Sammlung der erfassten Abfragen des Indexberaters.
Indexberater konfigurieren
Der Indexierungsberater funktioniert mit seinen Standardeinstellungen für die meisten Anwendungsfälle. Sie können sein Verhalten jedoch durch Festlegen verschiedener Datenbank-Flags optimieren.
Sie können beispielsweise das Flag google_db_advisor.enable_vector_index_advisor festlegen, damit der Indexberater Indexe für Vektorabfragen empfiehlt. Dieses Flag ist standardmäßig aktiviert.
Weitere Informationen finden Sie unter Flags für den Indexberater.
Nächste Schritte
- AlloyDB for PostgreSQL-Indexberater mit Query Insights verwenden
- Indexberater – Übersicht
- Abfrageleistung mit erweiterten Query Insights-Funktionen verbessern
- Flags für den Indexberater