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 sich die Empfehlungen als Tabelle ansehen und abfragen oder jederzeit eine Analyse und einen Bericht anfordern.
Hinweis
Bevor Sie den Indexberater verwenden, müssen die folgenden Voraussetzungen erfüllt sein.
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. Die Ergebnisse finden Sie in zwei Tabellenansichten in jeder Ihrer Datenbanken:
google_db_advisor_recommended_indexeslistet alle empfohlenen neuen Indexe für die Datenbank auf. 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 Berater 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 normale Datenbankansichten vorhanden sind, können Sie Abfragen schreiben, mit denen Sie Informationen auf beliebige Weise 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;
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 den geschätzten Speicheranforderungen aller empfohlenen Indexe an. Wenn bei der Analyse keine neuen Indexe empfohlen werden, enthält die Ansicht keine Zeilen.
Beachten Sie, dass sich die PostgreSQL-Nutzerrolle
mit der dieser Befehl ausgeführt wird, auf die angezeigten Empfehlungen auswirken 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
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, 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 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");
Erfasste 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:
- Wie oft die Instanz diese Abfrage ausgeführt hat
- Die Gesamtzeit, die die Instanz für die Verarbeitung dieser Abfragen aufwendet
- 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();
AlloyDB leert sofort die Sammlung der erfassten Abfragen des Indexberaters.
Indexberater konfigurieren
Der Indexberater 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 empfehlen kann. Dieses Flag ist standardmäßig aktiviert.
Weitere Informationen finden Sie unter Flags für den Indexberater.