Aktive Abfragen überwachen

Um die Ursachen für Systemlatenz und hohe CPU-Auslastung in AlloyDB for PostgreSQL zu ermitteln, können Sie aktive, lang andauernde Abfragen in Ihrer Datenbank überwachen und Fehler beheben.

Sie können aktive Abfragen in derGoogle Cloud Console auf der Seite Query Insights nach Transaktionsstartzeit sortiert aufrufen. Wenn sehr viele Abfragen ausgeführt werden, wird auf der Seite aufgrund von Speicherbeschränkungen bei der Datenerhebung möglicherweise nur eine Teilmenge der Gesamtabfragen angezeigt.

Hinweis

Damit Sie aktive Abfragen aufrufen können, müssen Sie die erweiterten Query Insights-Funktionen aktivieren und die Analyse aktiver Abfragen für Ihre Instanz so aktivieren:

  1. Rufen Sie in der Google Cloud Console die Seite Cluster auf.

    Zu den Clustern

  2. Klicken Sie in der Liste der Cluster und Instanzen entweder auf eine primäre oder eine Lesepoolinstanz.

  3. Klicken Sie auf Query Insights.

  4. Klicken Sie auf Einstellungen bearbeiten.

  5. Wählen Sie im Fenster Query Insights-Einstellungen bearbeiten die Option Erweiterte Query Insights-Funktionen für AlloyDB aktivieren > Aktive Abfrageanalyse aus.

  6. Klicken Sie auf Änderungen speichern.

  7. Klicken Sie im Fenster Änderungen erfordern Neustart auf Bestätigen und neu starten.

Sie können die Unterstützung von Gemini Cloud Assist verwenden, um Ihre AlloyDB-Ressourcen zu überwachen und Fehler zu beheben. Weitere Informationen finden Sie unter Mit KI-Unterstützung überwachen und Fehler beheben.

Aktive Abfragen ansehen

So rufen Sie Ihre aktiven Abfragen auf:

  1. Bitten Sie Ihren Administrator, Ihnen die Rolle „Database Insights Monitoring Viewer“ (roles/databaseinsights.monitoringViewer) zuzuweisen, oder erstellen Sie eine benutzerdefinierte Rolle mit der IAM-Berechtigung databaseinsights.activeQueries.fetch.

  2. Weisen Sie diese Rolle jedem Nutzer zu, der aktive Abfragen anzeigt.

  3. Öffnen Sie in der Google Cloud Console die Seite AlloyDB.

    Zu AlloyDB

  4. Klicken Sie auf den Namen eines Clusters, um die Seite Übersicht zu öffnen.

  5. Wählen Sie den Tab Query Insights aus. Im Query Insights-Dashboard werden Details zum ausgewählten Cluster angezeigt.

  6. Klicken Sie auf den Tab Aktive Abfrageansicht. Der Tab enthält eine Zusammenfassung der aktiven Abfragen sowie die 50 Transaktionen mit der längsten Ausführungszeit.

    Sie können die Informationen nach folgenden Kriterien filtern:

    • Datenbanken: Filtert die Abfragelast für eine bestimmte Datenbank oder für alle Datenbanken.
    • Nutzer: Filtert die Abfragelast von einem bestimmten Datenbanknutzer oder von allen Nutzern.
    • Knoten-ID: Wird nur für Lesepoolinstanzen angezeigt. Filtert die Abfragelast für einen bestimmten Lesepoolinstanzknoten oder alle Knoten.

    Zusammenfassung aller normalisierten aktiven Abfragen: Hier finden Sie einen Überblick über alle aktiven Abfragen, wobei die Gesamtzahl der Verbindungen basierend auf den folgenden Parametern angezeigt wird:

    • Verteilung der aktiven Verbindungen, die nach Verbindungsstatus kategorisiert sind.
    • Verteilung der aktiven Verbindungen nach verschiedenen Warteereignistypen.
    • Verteilung der Transaktionsdauer für Abfragen, die sich nicht im inaktiven Zustand befinden.

    Am längsten laufende Transaktionen: Bietet einen Überblick über die 50 am häufigsten ausgeführten Abfragen im Status active und idle in transaction basierend auf absteigender Ausführungszeit.

Im Query Insights-Dashboard können Sie eine Liste der 50 wichtigsten normalisierten aktiven Abfragen aufrufen.

Eine normalisierte aktive Abfrage entfernt sensible Daten und gibt einen Digest zurück. Zwei Abfragen, die bis auf die Werte der WHERE-Klausel identisch sind, haben denselben Digest. Betrachten Sie beispielsweise die folgenden drei Beispielabfragen:

  • select * from my_table where id = 1;
  • select * from my_table where id = 2;
  • select * from my_table where id = 100;

Die normalisierte Version dieser Abfragen ist der folgende Digest:

select * from my_table where id = ?;

Eine Abfrage, die in verschiedenen Sitzungen ausgeführt wird, wird im Dashboard als unterschiedliche Einträge angezeigt.

Am längsten laufende Transaktionen ansehen

In der folgenden Tabelle werden die Spalten der Tabelle Am längsten laufende Transaktionen im Dashboard „Query Insights“ beschrieben:

Spaltenname Beschreibung
Prozess-ID Die Process ID ist die eindeutige Kennung der Datenbankverbindung.
Knoten-ID Die Knoten-ID ist die eindeutige Kennung des Lesepool-Instanzknotens, auf dem eine Abfrage ausgeführt wird.
Abfrage Normalisierter SQL-Abfragetext.
Status Der aktuelle Status der Verbindung. Statuswerte können unter anderem active und idle in transaction sein.
Sitzungsdauer Die Dauer der aktuellen Sitzung (in Sekunden).
Transaktionsdauer Die Dauer der aktuellen Transaktion (in Sekunden).
Abfragedauer Die Dauer der aktuell aktiven Abfrage (in Sekunden). Die Abfragedauer von Abfragen im Status idle in transaction beträgt 0, da die Abfragen nicht aktiv ausgeführt werden.
Warteereignistyp Der auftretende Warteereignistyp während der Ausführung der Abfrage.
Warteereignis Das auftretende Warteereignis während der Ausführung der Abfrage.
Datenbank Datenbankname, auf dem diese Verbindung ausgeführt wird.
Name der Anwendung Name der Anwendung, auf der diese Verbindung ausgeführt wird.
Nutzername Name des Datenbanknutzers, der mit der Datenbank verbunden ist.
Clientadresse Bestimmte IP-Adresse des Clients, der eine Abfrage gesendet hat.
Aktion Enthält einen Link zum Beenden einer Transaktion.

Die Anzeige wird alle 60 Sekunden automatisch aktualisiert.

Wenn Sie die Felder Datenbank und Nutzer zum Filtern verwenden, werden die Daten auf der Seite aktualisiert.

Wenn Sie statische Daten analysieren möchten, deaktivieren Sie die automatische Aktualisierung und verwenden Sie nach Bedarf das Feld Filter der Tabelle Transaktionen mit der längsten Ausführungszeit.

Abfrage oder Transaktion beenden

Zum Beenden einer Abfrage oder Transaktion benötigen Sie die Rolle roles/databaseinsights.operationsAdmin. Weitere Informationen finden Sie in der Referenz zu einfachen und vordefinierten IAM-Rollen.

Eine Transaktion kann mehrere Abfragen enthalten. In der Spalte Abfrage der Tabelle Am längsten laufende Transaktion sehen Sie, welche Abfragen derzeit aktiv sind.

So beenden Sie eine Abfrage oder Transaktion:

  1. Wählen Sie die Abfrage in der Tabelle Am längsten laufende Transaktion aus.
  2. Scrollen Sie nach rechts zur Spalte Aktion.
  3. Klicken Sie auf Verbindung beenden.
  4. Klicken Sie im Fenster Verbindung beenden auf Bestätigen.

    Die Seite wird nach dem Initiieren der Kündigung aktualisiert. Wenn das Beenden fehlschlägt, wird dies nicht gemeldet und die Abfrage wird weiterhin in der Liste der aktiven Abfragen angezeigt. Wenn die Beendigung erfolgreich war, wird die Abfrage nicht mehr in der Liste angezeigt.

Nächste Schritte