Auf dieser Seite wird beschrieben, wie Sie mit erweiterten Abfragestatistiken Leistungsprobleme bei Abfragen sowohl für primäre als auch für Lesepool-Instanzen in Echtzeit erkennen und analysieren können. Eine Übersicht über erweiterte Abfragestatistiken finden Sie unter Übersicht über erweiterte Abfragestatistiken.
Informationen zur Verwendung standardmäßiger Abfragestatistiken finden Sie unter Abfrageleistung mit Query Insights verbessern.
Sie können die Unterstützung von Gemini in Datenbanken verwenden, um Ihre AlloyDB-Ressourcen zu überwachen und Fehler zu beheben. Weitere Informationen finden Sie unter Mit Gemini in Datenbanken beobachten und Fehler beheben.
Hinweis
Wenn Sie auf das Query Insights-Dashboard zugreifen möchten, aktivieren Sie den Zugriff auf AlloyDB for PostgreSQL in Ihrem Google Cloud-Projekt.
Erforderliche Rollen
Wenn Sie erweiterte Query Insights verwenden möchten, benötigen Sie Berechtigungen für Folgendes:
- Für den Zugriff auf erweiterte Query Insights benötigen Sie Berechtigungen für das AlloyDB Query Insights-Dashboard.
- Wenn Sie die Einstellungen für erweiterte Abfragestatistiken bearbeiten möchten, benötigen Sie Berechtigungen zum Aktualisieren von AlloyDB-Instanzen.
Bitten Sie Ihren Administrator, Ihnen eine der folgenden Rollen zuzuweisen, um diese Berechtigungen zu erhalten:
- Einfache Oberfläche (
roles/viewer
) - Database Insights-Betrachter (
roles/databaseinsights.viewer
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Erweiterte Abfragestatistiken aktivieren
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie in der Liste der Cluster und Instanzen auf eine Instanz.
Klicken Sie auf Query Insights.
Wählen Sie die Datenbank und den Nutzer aus.
Klicken Sie auf Einstellungen bearbeiten.
Aktivieren Sie Erweiterte Abfragestatistiken.
Wenn Sie Ihr Google Cloud-Projekt mit VPC Service Controls schützen, fügen Sie die
databaseinsights.googleapis.com
API dem Dienstperimeter als eingeschränkten Dienst hinzu.Speichern Sie die Änderungen. Dadurch wird die Instanz neu gestartet.
Nachdem die erweiterten Abfragestatistiken aktiviert wurden, können Sie die Einstellungen für erweiterte Abfragestatistiken bearbeiten.
Einstellungen für erweiterte Abfragestatistiken bearbeiten
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie in der Liste der Cluster und Instanzen auf eine Instanz.
Klicken Sie auf Query Insights.
Wählen Sie die Datenbank und den Nutzer aus.
Klicken Sie auf Einstellungen bearbeiten und aktivieren oder deaktivieren Sie die folgenden Einstellungen:
- Aktivieren Sie die Analyse von Warteereignissen. Die Analyse von Warteereignissen kann Ihnen helfen, Leistungsprobleme in Ihrer Datenbank zu erkennen und zu beheben. Ein Warteereignis ist eine Komponente, die zu einer Verzögerung bei der Verarbeitung einer Abfrage führt.
- Abfragekommentare speichern Die Kommentare zu einer Abfrage, die Sie untersuchen, geben Ihnen Aufschluss über den Abfragekontext. Es wird kein zusätzlicher Arbeitsspeicher benötigt. Wenn die Kommentare vertrauliche Informationen enthalten, achten Sie darauf, welche Nutzer darauf Zugriff haben.
- Anwendungs-Tags speichern Sie können damit ermitteln, welche APIs und Model-View-Controller-Routen Anfragen stellen, und diese Daten zum Erstellen von entsprechenden Messwerten gruppieren.
- Abfragelänge anpassen Sie können das Standardlimit für die Länge von Abfragen von 256 Byte auf bis zu 100 KB ändern. Größere Abfragelängen erfordern mehr Arbeitsspeicher. Wenn Sie die Abfragelänge ändern, muss die Instanz neu gestartet werden.
- Aktivieren Sie Abfragepläne und konfigurieren Sie die Abtastrate. Abfragepläne visualisieren die Vorgänge, die zum Ausführen einer Abfragestichprobe verwendet werden. Die Stichprobenrate bestimmt, wie viele Abfragestichproben pro Minute in Ihren Datenbanken erfasst werden können. Höhere Raten erfordern mehr Arbeitsspeicher.
- Aktivieren Sie die Empfehlungen. Empfehlungen zur Indexerstellung auf der Seite „Query Insights“ eines Clusters anzeigen.
Speichern Sie die Änderungen.
Probleme mit der Abfrageleistung erkennen und diagnostizieren
Mit erweiterten Query Insights können Sie Leistungsprobleme erkennen und diagnostizieren. Im erweiterten Query Insights-Dashboard wird die Datenbanklast angezeigt. Das ist ein Maß für die Arbeit (in CPU-Sekunden), die von den ausgeführten Abfragen in der ausgewählten Datenbank im Zeitverlauf ausgeführt wird. Bei jeder ausgeführten Abfrage werden entweder Ressourcen verwendet oder darauf gewartet. Die Datenbanklast ist das Verhältnis der Zeit, die von allen innerhalb eines bestimmten Zeitfensters abgeschlossenen Abfragen benötigt wird, zur tatsächlich verstrichenen Zeit.
Maß für die Arbeit, die durch ausgeführte Abfragen geleistet wurde, ansehen
Im Diagramm „Datenbanklast“ sehen Sie das Maß der Arbeit (in CPU-Sekunden), die von allen ausgeführten Abfragen in Ihrer Datenbank erledigt wurde, unterteilt nach der ausgewählten Dimension. Die Datenbanklast wird in die Verteilungsdaten unterteilt, die Sie im Drop-down-Menü für das Diagramm auswählen.
Sie können die Datenbanklast nach einer der folgenden Dimensionen aufschlüsseln:
- Abfrage
- Warteereignistyp
- Warteereignis
- Datenbank
- Nutzer
So rufen Sie die durch ausgeführte Abfragen in Ihrer Datenbank ausgeführten Arbeiten auf:
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie in der Liste der Cluster und Instanzen auf eine Instanz.
Klicken Sie auf Query Insights.
Wählen Sie die Datenbank und den Nutzer aus.
Wählen Sie die Gesamtausführungszeit aus, für die Daten angezeigt werden sollen, z. B. 1 oder 6 Stunden oder eine benutzerdefinierte Zeit.
Wählen Sie im Drop-down-Menü Datenbankauslastung nach Ausführungszeit die Dimension aus, die Sie untersuchen möchten. Je nach ausgewählter Dimension wird im Diagramm dargestellt, wie sich die Dimension auf die Gesamtlast der Datenbank auswirkt. Wenn Sie beispielsweise im Drop-down-Menü des Diagramms „Datenbankauslastung“ die Dimension Warteereignisse auswählen, wird im Diagramm „Datenbankauslastung“ eine Aufschlüsselung aller Warteereignisse angezeigt, die im ausgewählten Zeitraum für die ausgewählte Datenbank und den ausgewählten Nutzer aufgetreten sind.
Das Diagramm zur Datenbankauslastung enthält Daten für alle neun Warteereignistypen und die in PostgreSQL unterstützten Warteereignisse. Je nach Anzahl der Warteereignisse und -typen werden die zehn wichtigsten Warteereignisse und -typen angezeigt. Wenn es mehr als zehn Warteereignisse gibt, werden die neun wichtigsten angezeigt und der Rest in der Kategorie Sonstiges zusammengefasst. Dieser Ansatz gilt auch für andere Dimensionen wie Abfragen, Datenbanken und Nutzer.
Hauptursachen für die Datenbanklast ansehen
In der Tabelle Top-Dimensionen nach Datenbanklast sehen Sie die Hauptursachen für die Datenbanklast im ausgewählten Zeitraum und für die im Diagramm Datenbanklast ausgewählte Dimension. Je nachdem, welche Dimension Sie in der Tabelle Top-Dimensionen nach Datenbanklast auswählen, sehen Sie die höchsten Werte für das ausgewählte Zeitfenster.
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie in der Liste der Cluster und Instanzen auf eine Instanz.
Klicken Sie auf Query Insights.
Wählen Sie die Datenbank und den Nutzer aus.
Wählen Sie die Gesamtausführungszeit aus, für die Daten angezeigt werden sollen, z. B. 1 oder 6 Stunden oder eine benutzerdefinierte Zeit.
In der Tabelle Top-Dimensionen nach Datenbanklast können Sie auf eine der folgenden Optionen klicken:
Dimension Beschreibung Abfragen Die Tabelle enthält die Top-normalisierten Abfragen nach Gesamtausführungszeit. Für jede Abfrage werden die in den Spalten angezeigten Daten so aufgelistet:
- Durchschn. Ausführungszeit (ms). Durchschnittliche Ausführungszeit der Abfrage.
- Gesamtausführungszeit (ms). Die Gesamtausführungszeit der jeweiligen Abfrage.
- Zurückgegebene Zeilen Die durchschnittliche Anzahl der für die Abfrage abgerufenen Zeilen.
- Anzahl an Aufrufen Die Häufigkeit, mit der die Abfrage von der Anwendung aufgerufen wurde.
- %der Last nach Diagrammdimension. Das Tablettendiagramm zeigt, wie die Dimension des Diagramms für die jeweilige Abfrage verteilt ist.
Warteereignistypen Die Tabelle enthält eine Liste der häufigsten Warteereignistypen, die im ausgewählten Zeitraum aufgetreten sind.
- Durchschn. Zeit in Wartezustand (ms). Durchschnittliche Zeit, die die Abfragen im jeweiligen Warteereignistyp verbracht haben.
- Gesamtzeit in Wartezustand (ms) Die Gesamtausführungszeit der Abfragen für den jeweiligen Warteereignistyp.
- Anzahl der Warteereignistypen Gibt an, wie oft ein bestimmter Warteereignistyp im ausgewählten Zeitraum aufgetreten ist.
- %der Last nach Diagrammdimension. Im Tablettendiagramm wird dargestellt, wie die im Drop-down-Menü des Diagramms zur Datenbanklast ausgewählte Dimension des Diagramms auf den jeweiligen Warteereignistyp verteilt ist.
Warteereignisse Die Tabelle enthält eine Liste der wichtigsten Warteereignisse, die im ausgewählten Zeitraum aufgetreten sind.
- Durchschn. Zeit in Wartezustand (ms). Durchschnittliche Zeit, die die Abfragen im jeweiligen Warteereignis verbracht haben.
- Gesamtzeit in Wartezustand (ms) Die Gesamtausführungszeit, die die Abfragen im jeweiligen Warteereignis verbracht haben.
- Anzahl der Warteereignisse Die Häufigkeit, mit der ein bestimmtes Warteereignis im ausgewählten Zeitraum aufgetreten ist.
- %der Last nach Diagrammdimension. Im Tablettendiagramm wird dargestellt, wie die im Drop-down-Menü des Diagramms zur Datenbanklast ausgewählte Diagrammdimension auf das jeweilige Warteereignis verteilt ist.
Datenbank Die Tabelle enthält eine Liste der Top-Datenbanken, die im ausgewählten Zeitraum zur Last bei allen ausgeführten Abfragen beigetragen haben.
- Durchschn. Zeit in Datenbank (ms). Durchschnittliche Zeit, die die Abfragen in der jeweiligen Datenbank verbracht haben.
- Gesamtzeit in der Datenbank (ms) Die Gesamtausführungszeit der Abfragen in der jeweiligen Datenbank.
- %der Last nach Diagrammdimension. Im Pillendiagramm wird dargestellt, wie die im Drop-down-Menü für das Diagramm zur Datenbanklast ausgewählte Dimension des Diagramms auf die jeweilige Datenbank verteilt ist.
Nutzer Die Tabelle enthält eine Liste der Top-Nutzer für den ausgewählten Zeitraum aus allen ausgeführten Abfragen.
- Durchschn. Zeit im Nutzermodus (ms). Durchschnittliche Zeit, die die Abfragen für den jeweiligen Nutzer in Anspruch genommen haben.
- Gesamtzeit im Nutzermodus (ms). Die Gesamtausführungszeit der Abfragen für den jeweiligen Nutzer.
- %der Last nach Diagrammdimension. Das Tablettendiagramm zeigt, wie die im Drop-down-Menü für das Diagramm zur Datenbankauslastung ausgewählte Diagrammdimension auf den jeweiligen Nutzer verteilt ist.
Abfrageausführungszeit aufrufen
In den erweiterten Abfragestatistiken werden in der Tabelle Top-Dimensionen nach Datenbanklast die zehn Abfragen angezeigt, die am meisten zur Datenbanklast beitragen. Die Top-Abfrage ist diejenige, die im ausgewählten Zeitraum am meisten zur Datenbanklast beigetragen hat. Die nachfolgenden Abfragen werden als Prozentsatz der längsten Ausführungszeit angegeben.
So erfahren Sie, wie sich die Ausführungszeit eines Parameters in den Top-Dimensionen nach Datenbankauslastung aufgrund verschiedener Werte der ausgewählten Diagrammdimension (Abfragen, Warteereignistypen, Warteereignisse, Datenbanken und Nutzer) auswirkt:
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie in der Liste der Cluster und Instanzen auf eine Instanz.
Klicken Sie auf Query Insights.
Wählen Sie die Datenbank und den Nutzer aus.
In der Tabelle Top-Dimensionen nach Datenbanklast sehen Sie unter % Last nach Diagrammdimension, wie sich Parameter in der Tabelle auf Parameter im Diagramm Datenbanklast auswirken.
Wenn Sie beispielsweise im Diagramm Datenbanklast die Option Alle Abfragen auswählen und in der Tabelle Top-Dimensionen nach Datenbanklast auf den Tab Abfragen klicken, wird unter % Last nach Abfragen eine Liste der Abfragen angezeigt, die im ausgewählten Zeitraum am meisten zur Datenbanklast in der ausgewählten Datenbank beigetragen haben.
Details zur Abfrageausführungszeit aufrufen
Unter Weitere Informationen finden Sie Details zur Abfrageausführungszeit, einschließlich der Dimensionen, die Sie im Diagramm und in der Tabelle zur Datenbanklast ausgewählt haben, der Definition der einzelnen Warteereignisse und der Daten, die in der Kategorie Sonstiges zusammengefasst sind.
Unter Weitere Details werden auch Details zu komplexen Informationen angezeigt, die auf dem Bildschirm mit den Abfragedetails nicht zu sehen sind. Diese Informationen umfassen die Definition jedes Warteereignisses.
So rufen Sie Details zur Ausführungszeit der Abfrage auf:
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie in der Liste der Cluster und Instanzen auf eine Instanz.
Klicken Sie auf Query Insights.
Wählen Sie die Datenbank und den Nutzer aus.
Klicken Sie in der Tabelle Top-Dimensionen nach Datenbanklast für eine Abfrage auf Weitere Details.
In den erweiterten Abfragestatistiken werden normalisierte Abfragen ($1, $2 usw.) angezeigt, um die Werte der Literalkonstanten zu ersetzen. Beispiel:
UPDATE "demo_customer" SET "customer_id" = $1::uuid, "name" = $2, "address" = $3, "rating" = $4, "balance" = $5, "current_city" = $6, "current_location" = $7 WHERE "demo_customer"."id" = $8
Der Wert der Konstante wird ignoriert, damit in erweiterten Query Insights ähnliche Abfragen aggregiert und personenidentifizierbare Informationen entfernt werden können, die die Konstante möglicherweise anzeigt.
Datenbanklast für normalisierte Abfragen ermitteln
So rufen Sie ein Maß für die Zeit- und Ressourcennutzung durch die Abfrageausführung (in CPU-Sekunden) auf, die die ausgewählte normalisierte Abfrage in der ausgewählten Datenbank im Laufe der Zeit ausgeführt hat:
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie in der Liste der Cluster und Instanzen auf eine Instanz.
Klicken Sie auf Query Insights.
Wählen Sie die Datenbank und den Nutzer aus.
Klicken Sie im Diagramm Datenbankauslastung auf Abfragen. Zur Berechnung der Datenbanklast wird im Diagramm Datenbanklast die Zeit verwendet, die von den normalisierten Abfragen benötigt wird, die am Ende der Minute abgeschlossen sind, bezogen auf die tatsächlich verstrichene Zeit.
Oben im Diagramm Datenbankauslastung werden die ersten 10 KB der normalisierten Abfrage angezeigt. Literale werden dabei wegen Aggregation und personenidentifizierbaren Informationen entfernt.
Um die Verteilung der in den einzelnen Status verbrachten Zeit zu ermitteln, werden in den erweiterten Abfragestatistiken die Lasten normalisierter Abfragen in Warteereignisse und Warteereignistypen unterteilt.
Mit den Diagrammen Latenz können Sie die Abfragelatenz untersuchen. Latenz ist die tatsächlich verstrichene Zeit, die für den Abschluss der normalisierten Abfrage benötigt wird. Die Latenz paralleler Abfragen wird in der tatsächlich verstrichenen Zeit gemessen, obwohl die Datenbanklast für die Abfrage höher sein kann, da mehrere Kerne zum Ausführen bestimmter Teile der Abfrage verwendet werden.
Sie können nach Perzentil filtern, um das 50., 95. oder 99. Perzentil anzusehen und Abfragen zu erkennen, die die erwartete Ausführungszeit nicht einhalten. Wenn Sie die bisherige Latenz für die normalisierte Abfrage analysieren möchten, ändern Sie das Zeitfenster.
Normalisierte Abfragen analysieren
Mithilfe von Abfrageplänen können Sie normalisierte Abfragen erläutern und analysieren. Dazu erstellen Sie eine Aufschlüsselung der verschiedenen Vorgänge in einer Stichprobe der Abfrage.
Der Beispielabfrageplan bietet eine EXPLAIN ANALYZE
-Ansicht für die Abfrageplanstichproben, die sich auf die normalisierte Abfrage beziehen. Dies sind ausgeführte Abfragepläne, die eine Aufschlüsselung der aktiven Zeit liefern, die von jedem Vorgang im Abfrageplan benötigt wurde.
So rufen Sie einen Beispielabfrageplan auf:
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie in der Liste der Cluster und Instanzen auf eine Instanz.
Klicken Sie auf Query Insights.
Wählen Sie die Datenbank und den Nutzer aus.
Wählen Sie die Gesamtausführungszeit aus, für die Daten angezeigt werden sollen, z. B. 1 oder 6 Stunden oder eine benutzerdefinierte Zeit.
Klicken Sie in der Tabelle Top-Dimensionen nach Datenbanklast auf eine Abfrage.
Klicken Sie unter Beispiele für Abfragepläne auf einen der Punkte im Diagramm, um einen Abfrageplan für diese Abfrage aufzurufen.
Anwendungsleistung mithilfe von Tags überwachen und Fehler beheben
Verbesserte Abfragestatistiken bieten anwendungsorientiertes Monitoring und vereinfachen die Leistungsdiagnose von Anwendungen, die mit objektrelationalen Zuordnungen (Object Relational Mapping, ORM) erstellt wurden. Mit der Tag-Kennzeichnung von Abfragen können Sie Probleme auf höherer Ebene ermitteln, z. B. mit der Geschäftslogik, einem Mikrodienst oder einem anderen Konstrukt. Mithilfe von Tags in Ihrer Anwendung können Sie Folgendes tun:
- Datenbankleistung überwachen
- Mit Sqlcommenter können Sie Leistungsprobleme identifizieren, die durch Anwendungscode verursacht werden.
- Analysieren Sie die Datenbanklast.
- Sie können sich die Auslastung pro Tag ansehen.
Weitere Informationen zur Verwendung von Tags in Query Insights finden Sie unter Abfrageleistung mit Query Insights verbessern.
Fehlerbehebung bei Anwendungen auf Datenbankebene
Verbesserte Abfragestatistiken bieten eine kontextbezogene End-to-End-Trace-Ansicht, mit der Sie Probleme mit der Anwendung auf Datenbankebene für eine bestimmte Anfrage besser nachvollziehen können. Mit kontextbezogenen End-to-End-Anwendungs-Traces können Sie die Quelle der problematischen Abfrage ermitteln, z. B. nach Modell, Ansicht, Controller und Route.
Wenn Sie OpenTelemetry aktivieren, werden Span-Informationen zusammen mit den Taginformationen in SQL-Kommentaren an die Datenbank gesendet. Traces von der Anwendung zu Cloud Logging sind mit Datenbankabfrageplan-Traces verknüpft, um die Ursache des Problems zu ermitteln.
So rufen Sie einen In-Context-Trace auf:
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie in der Liste der Cluster und Instanzen auf eine Instanz.
Klicken Sie auf Query Insights.
Wählen Sie die Datenbank und den Nutzer aus.
Klicken Sie auf einen beliebigen Eintrag in der Tabelle Top-Dimensionen nach Datenbanklast.
Klicken Sie auf der Seite Details zu Abfragestatistiken auf END-TO-END.
Sie können Cloud Trace auch verwenden, um das End-to-End-Tracing für jeden Schritt im Abfrageplan zu sehen. Wählen Sie Verwaltung > Trace aus, um auf Cloud Trace zuzugreifen.
Häufig gestellte Fragen
In diesem Abschnitt finden Sie Antworten auf häufig gestellte Fragen zu erweiterten Suchanfrage-Statistiken.
Warum wird der Suchstring abgeschnitten?
Standardmäßig werden in den erweiterten Abfragestatistiken 10 KB in Abfragestrings angezeigt. Sie können die Anzeige auf 100 KB erhöhen.
Warum liegt meine CPU-Auslastung im Diagramm „Datenbankauslastung“ über der maximalen Kernlinie?
Die CPU-Auslastung berücksichtigt sowohl die Laufzeit als auch die Zeit, die auf den Linux-Planer gewartet wird, um den laufenden Serverprozess zu planen. Daher kann die CPU-Auslastung die maximale Kernlinie überschreiten.
Kann ich die Standardmesswerte von Query Insights verwenden?
Ja. Standard-Query Insights generieren Zähler, auf die über Stackdriver zugegriffen werden kann. Während das erweiterte Query Insights noch in der Vorabversion ist, sind diese Messwerte mit der Cloud Monitoring API mit erweitertem Query Insights verfügbar. Weitere Informationen finden Sie unter Google Cloud -Messwerte.
Wie lang darf ein Abfragestring maximal sein?
Beim standardmäßigen Query Insights-Plug-in ist die maximale Länge des Abfragestrings auf 4, 5 KB begrenzt. Für erweiterte Suchanfrage-Statistiken beträgt die Standardstringlänge 10 KB und die maximale Länge ist auf 100 KB begrenzt.
Kann ich erweiterte Query Insights bei der regionenübergreifenden Replikation verwenden?
Sie können verbesserte Abfragestatistiken nicht für Cluster mit sekundären Instanzen aktivieren. Wenn Sie eine sekundäre Instanz in einem Cluster erstellen möchten, müssen Sie verbesserte Abfragestatistiken für alle Instanzen im Cluster deaktivieren, falls diese bereits aktiviert sind.
Nächste Schritte
- Übersicht über erweiterte Abfragestatistiken
- AlloyDB-Messwerte
- Blogpost mit Anleitung: "Abfrage-Tagging mit Sqlcommenter aktivieren"