Abfrageleistung mit erweiterten Query Insights-Funktionen für AlloyDB verbessern

Mit den erweiterten Query Insights-Funktionen für AlloyDB for PostgreSQL können Sie Probleme mit der Abfrageleistung in primären und Lesepoolinstanzen nahezu in Echtzeit erkennen und analysieren. Eine Übersicht über diese Funktionen finden Sie unter Erweiterte Query Insights-Funktionen für AlloyDB.

Informationen zur Verwendung von Standard-Query Insights finden Sie unter Abfrageleistung mit Query Insights verbessern.

Sie können Gemini Cloud Assist 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, müssen Sie den Zugriff auf AlloyDB for PostgreSQL in Ihrem Google Cloud -Projekt aktivieren.

Erforderliche Rollen

Wenn Sie erweiterte Query Insights-Funktionen für AlloyDB verwenden möchten, benötigen Sie die folgenden Berechtigungen:

  • Für den Zugriff auf erweiterte Query Insights-Funktionen für AlloyDB benötigen Sie Berechtigungen für den Zugriff auf das AlloyDB Query Insights-Dashboard.
  • Wenn Sie die Einstellungen der erweiterten Query Insights-Funktionen für AlloyDB 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 Viewer (roles/databaseinsights.viewer)

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Erweiterte Query Insights-Funktionen für AlloyDB aktivieren

So aktivieren Sie die erweiterte Query Insights-Konfiguration für eine AlloyDB-Instanz:

Console

  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 auf eine Instanz.

  3. Klicken Sie auf Query Insights.

  4. Klicken Sie entweder auf Aktivieren oder auf Einstellungen bearbeiten.

  5. Wählen Sie auf dem Tab Query Insights-Einstellungen bearbeiten das Kästchen Erweiterte Query Insights-Funktionen für AlloyDB aktivieren aus.

    Dies beinhaltet standardmäßig die folgenden Konfigurationsänderungen:

    • Aktiviert die Kästchen Analyse von Warteereignissen und Analyse aktiver Abfragen.
    • Erhöht die Abfragelänge von 4.500 B auf 100.000 B.
  6. Speichern Sie die Änderungen. Dadurch wird Ihre AlloyDB for PostgreSQL-Instanz neu gestartet.

gcloud

gcloud alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--observability-config-enabled

Ersetzen Sie Folgendes:

  • INSTANCE: die ID der zu aktualisierenden Instanz.
  • CLUSTER: die ID des Clusters der Instanz.
  • PROJECT: die ID des Projekts des Clusters.
  • REGION: die Region des Clusters, z. B. us-central1.

Mit dem Flag --observability-config-enabled können Daten auf einer AlloyDB-Instanz erfasst und analysiert werden, um ihre Leistung und ihren Zustand zu überwachen. Wenn Sie erweiterte Query Insights-Funktionen deaktivieren möchten, verwenden Sie --no-observability-config-enabled.

Terraform

Wenn Sie Terraform verwenden möchten, um erweiterte Query Insights für Ihre AlloyDB-Instanz zu aktivieren, setzen Sie das Feld enabled im Block observability_config auf true.

Beispiel:

  observability_config {
    enabled = true
  ...
  }
  

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

REST Version 1

In diesem Beispiel werden erweiterte Query Insights für Ihre AlloyDB-Instanz aktiviert. Eine vollständige Liste der Parameter für diesen Aufruf finden Sie unter Methode: projects.locations.clusters.instances.patch. Informationen zu den erweiterten Query Insights-Einstellungen finden Sie unter Erweiterte Query Insights-Einstellungen bearbeiten.

Ersetzen Sie folgende Werte in den Anfragedaten:

  • CLUSTER_ID: Die ID des Clusters, den Sie erstellen. Sie muss mit einem Kleinbuchstaben beginnen und darf Kleinbuchstaben, Ziffern und Bindestriche enthalten.
  • PROJECT_ID: die ID des Projekts, in dem der Cluster platziert werden soll.
  • LOCATION_ID: die ID der Region des Clusters.
  • INSTANCE_ID: der Name der primären Instanz, die Sie erstellen möchten.

Verwenden Sie die folgende PATCH-Anfrage, um erweiterte Query Insights für Ihre Instanz zu aktivieren:

PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID?updateMask=observabilityConfig.enabled

Der Suchparameter updateMask=observabilityConfig.enabled weist die API an, das Feld enabled im Block observabilityConfig zu aktualisieren.

Der JSON-Anfragetext sieht so aus:

{
 "observabilityConfig": {
   "enabled" : true
 }
}

Nachdem die erweiterten Query Insights aktiviert wurden, können Sie die Einstellungen für erweiterte Query Insights bearbeiten.

Einstellungen für erweiterte Funktionen bearbeiten

So bearbeiten Sie die Konfiguration der erweiterten Query Insights für eine AlloyDB-Instanz:

Console

  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 auf eine Instanz.

  3. Klicken Sie auf Query Insights.

  4. Klicken Sie auf Einstellungen bearbeiten und ändern Sie die folgenden Einstellungen:

    • 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 eine Verzögerung bei der Verarbeitung eines abfragebezogenen Vorgangs verursacht.
    • Aktive Abfrageanalyse: Aktiv ausgeführte Abfragen verfolgen.
    • 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.
    • Indexberater aktivieren: Empfehlungen zur Indexerstellung auf der Seite „Query Insights“ eines Clusters anzeigen.
    • Im Feld Ausführungshäufigkeit auswählen können Sie die Updatehäufigkeit für Empfehlungen festlegen.
    • Client-IP-Adressen speichern: Aktivieren Sie diese Option, um Client-IP-Adressen zu erfassen und diese Daten zu analysieren.
    • Anwendungs-Tags speichern: Aktivieren Sie diese Option, um zu erfahren, welche APIs und Model-View-Controller-Routen Anfragen stellen, und gruppieren Sie diese Daten, um Messwerte dafür auszuführen.
    • Abfrageplanstichproben: 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.
    • Im Feld Abfragelängen können Sie das Standardlimit für Abfragelängen 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.
  5. Speichern Sie die Änderungen.

gcloud

gcloud alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--observability-config-enabled \
--observability-config-preserve-comments \
--observability-config-track-wait-events \
--observability-config-max-query-string-length=QUERY_LENGTH \
--observability-config-record-application-tags \
--observability-config-query-plans-per-minute=QUERY_PLANS \
--observability-config-track-active-queries

Wenn Sie auch das Tracking von Client-IP-Adressen oder unterstützende Funktionen (Vorschau) konfigurieren möchten, fügen Sie die Flags --observability-config-track-client-address und --observability-config-assistive-experiences-enabled in den Befehl gcloud beta alloydb instances update ein:

gcloud beta alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--observability-config-enabled \
--observability-config-preserve-comments \
--observability-config-track-wait-events \
--observability-config-max-query-string-length=QUERY_LENGTH \
--observability-config-record-application-tags \
--observability-config-query-plans-per-minute=QUERY_PLANS \
--observability-config-track-active-queries \
--observability-config-track-client-address \
--observability-config-assistive-experiences-enabled

Ersetzen Sie Folgendes:

  • INSTANCE: die ID der zu aktualisierenden Instanz.
  • CLUSTER: die ID des Clusters der Instanz.
  • PROJECT: die ID des Projekts des Clusters.
  • REGION: die Region des Clusters, z. B. us-central1.
  • QUERY_LENGTH: die Länge der Abfrage, die zwischen 1.024 und 100.000 Byte liegt. Die Standardlänge der Abfrage beträgt 10.240 Byte. Höhere Abfragelängen sind hilfreich für analytische Abfragen, erfordern aber auch mehr Arbeitsspeicher. Zum Ändern der Abfragelänge müssen Sie die Instanz neu starten. Sie können weiterhin Tags zu Abfragen hinzufügen, die die Längenbegrenzung überschreiten.
  • QUERY_PLANS: die Anzahl der Abfragepläne, die pro Minute konfiguriert werden sollen. Standardmäßig werden in allen Datenbanken der Instanz maximal 20 ausgeführte Abfrageplanstichproben pro Minute erfasst. Ändern Sie diesen Wert in eine Zahl von 1 bis 200. Geben Sie 0 ein, um die Stichprobenerhebung zu deaktivieren. Wenn Sie die Abtastrate erhöhen, erhalten Sie wahrscheinlich mehr Datenpunkte. Allerdings kann dies die Leistung beeinträchtigen.

Verwenden Sie bei Bedarf die folgenden optionalen Beobachtbarkeits-Flags:

  • --observability-config-enabled: Ermöglicht das Erfassen und Analysieren von Daten auf einer AlloyDB-Instanz, um deren Leistung und Zustand zu überwachen. Wenn Sie erweiterte Query Insights-Funktionen deaktivieren möchten, verwenden Sie --no-observability-config-enabled.
  • --observability-config-track-active-queries: Aktiviert das Tracking aktiver Abfragen. Wenn Sie die Funktion deaktivieren möchten, verwenden Sie --no-observability-config-track-active-queries.
  • --observability-config-track-client-address (Vorabversion): ermöglicht das Tracking von Clientadressen. Wird mit dem Befehl gcloud beta alloydb instances update festgelegt. Wenn Sie das Tracking von Clientadressen deaktivieren möchten, verwenden Sie --no-observability-config-track-client-address.
  • --observability-config-assistive-experiences-enabled (Vorabversion): Ermöglicht es unterstützenden Funktionen, erweiterte Telemetriedaten für Monitoring und Fehlerbehebung zu erfassen. Wird mit dem Befehl gcloud beta alloydb instances update festgelegt. Wenn Sie die unterstützenden Funktionen deaktivieren möchten, verwenden Sie --no-observability-config-assistive-experiences-enabled.
  • --observability-config-record-application-tags: Speichert Anwendungs-Tags, die Ihnen dabei helfen, die APIs und MVC-Routen (Model-View-Controller) zu bestimmen, die Anfragen stellen, und die Daten zu gruppieren, um sie mit Messwerten zu vergleichen. Bei dieser Option müssen Abfragen mit einem bestimmten Satz von Tags kommentiert werden. Wenn Sie keine Anwendungs-Tags speichern möchten, verwenden Sie --no-observability-config-record-application-tags.
  • --observability-config-preserve-comments: Behält Kommentare in Abfragestrings bei, die von Query Insights aufgezeichnet wurden. Wenn Sie Kommentare nicht beibehalten möchten, verwenden Sie --no-observability-config-preserve-comments.
  • --observability-config-track-wait-events: ermöglicht das Tracking von Warteereignissen während der Abfrageausführung. Wenn Sie keine Warteereignisse erfassen möchten, verwenden Sie --no-observability-config-track-wait-events.
  • --observability-config-query-plans-per-minute=QUERY_PLANS: Die Anzahl der Abfragepläne, die pro Minute erfasst werden sollen. Standardmäßig werden in allen Datenbanken der Instanz maximal 20 ausgeführte Abfrageplanstichproben pro Minute erfasst. Ändern Sie diesen Wert in eine Zahl von 1 bis 200. Geben Sie 0 ein, um die Stichprobenerhebung zu deaktivieren. Wenn Sie die Abtastrate erhöhen, erhalten Sie wahrscheinlich mehr Datenpunkte. Allerdings kann dies die Leistung beeinträchtigen.
  • --observability-config-max-query-string-length=QUERY_LENGTH: die zu speichernde Länge des Abfragestrings in Byte. Der Standardwert ist 10.240 Byte. Jeder Wert von 1024 bis 100000 ist zulässig. Zum Ändern der Abfragelänge müssen Sie die Instanz neu starten.

Terraform

Wenn Sie Terraform verwenden möchten, um erweiterte Query Insights für Ihre AlloyDB-Instanz zu konfigurieren, verwenden Sie die Ressource google_alloydb_instance.

Hier ein Beispiel:

  observability_config {
    enabled = ENABLED_VALUE
    preserve_comments = PRESERVE_COMMENTS_VALUE
    track_wait_events = TRACK_WAIT_EVENTS_VALUE
    max_query_string_length = MAX_QUERY_STRING_LENGTH_VALUE
    record_application_tags = RECORD_APPLICATION_TAGS_VALUE
    query_plans_per_minute = QUERY_PLANS_PER_MINUTE_VALUE
    track_active_queries = TRACK_ACTIVE_QUERIES_VALUE
    track_client_address = TRACK_CLIENT_ADDRESS_VALUE
    assistive_experiences_enabled = ASSISTIVE_EXPERIENCES_ENABLED_VALUE
  }
  

Ersetzen Sie Folgendes:

  • ENABLED_VALUE: Status des Beobachtbarkeitsfeatures für eine Instanz. Legen Sie true fest, wenn Sie die Einstellungen bearbeiten, und geben Sie nach Bedarf andere Flags an.
  • PRESERVE_COMMENTS_VALUE: Kommentare im Abfragestring beibehalten. Der Standardwert ist false.
  • TRACK_WAIT_EVENTS_VALUE: Warteereignisse während der Abfrageausführung für eine Instanz aufzeichnen. Der Standardwert ist true.
  • MAX_QUERY_STRING_LENGTH_VALUE: Länge des Abfragestrings. Der Standardwert ist 10240. Jede Ganzzahl zwischen 1.024 und 100.000 ist gültig.
  • RECORD_APPLICATION_TAGS_VALUE: Anwendungs-Tags für eine Instanz aufzeichnen. Der Standardwert ist true.
  • QUERY_PLANS_PER_MINUTE_VALUE: Die Anzahl der Abfrageausführungspläne, die von Insights pro Minute für alle Abfragen zusammen erfasst werden. Der Standardwert ist 20. Jede Ganzzahl zwischen 0 und 200 ist gültig.
  • TRACK_ACTIVE_QUERIES_VALUE: Aktiv ausgeführte Abfragen verfolgen. Der Standardwert ist false.
  • TRACK_CLIENT_ADDRESS_VALUE: Client-IP-Adressen für eine Instanz aufzeichnen. Der Standardwert ist false.
  • ASSISTIVE_EXPERIENCES_ENABLED_VALUE: Assistive Funktionen aktivieren. Der Standardwert ist false.

    Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

REST Version 1

In diesem Beispiel werden erweiterte Query Insights-Einstellungen für Ihre AlloyDB-Instanz konfiguriert. Eine vollständige Liste der Parameter für diesen Aufruf finden Sie unter Methode: projects.locations.clusters.instances.patch.

Wenn Sie erweiterte Query Insights-Einstellungen konfigurieren möchten, setzen Sie das Feld enabled auf true und ändern Sie bei Bedarf andere optionale Felder. Eine vollständige Liste der Felder für diesen Aufruf finden Sie unter ObservabilityInstanceConfig.

Ersetzen Sie folgende Werte in den Anfragedaten:

  • CLUSTER_ID: Die ID des Clusters, den Sie erstellen. Sie muss mit einem Kleinbuchstaben beginnen und darf Kleinbuchstaben, Ziffern und Bindestriche enthalten.
  • PROJECT_ID: die ID des Projekts, in dem der Cluster platziert werden soll.
  • LOCATION_ID: die ID der Region des Clusters.
  • INSTANCE_ID: der Name der primären Instanz, die Sie erstellen möchten.

Verwenden Sie die folgende PATCH-Anfrage, um Ihre Instanzkonfiguration zu ändern:

PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID?updateMask=observabilityConfig.enabled,observabilityConfig.preserveComments,observabilityConfig.trackWaitEvents,observabilityConfig.maxQueryStringLength,observabilityConfig.recordApplicationTags,observabilityConfig.queryPlansPerMinute,observabilityConfig.trackActiveQueries

Der JSON-Text der Anfrage, mit dem alle Felder für erweiterte Query Insights konfiguriert werden, sieht so aus:

{
 "observabilityConfig": {
   "enabled": true,
   "preserveComments": true,
   "trackWaitEvents": true,
   "maxQueryStringLength": 5000,
   "recordApplicationTags": true,
   "queryPlansPerMinute": 20,
   "trackActiveQueries": true
 }
}

Wenn Sie auch die Felder trackClientAddress oder assistiveExperiencesEnabled (Vorschau) konfigurieren möchten, verwenden Sie die Methode v1beta projects.locations.clusters.instances.patch und fügen Sie diese Felder in den Anfragetext updateMask und ObservabilityInstanceConfig ein.

Probleme mit der Abfrageleistung erkennen und diagnostizieren

Mit erweiterten Query Insights können Sie Leistungsprobleme erkennen und diagnostizieren. Im Query Insights-Dashboard wird die Datenbanklast angezeigt. Dies 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 es wird auf Ressourcen 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 von ausgeführten Abfragen erledigte Arbeit ansehen

Das Diagramm zur Datenbanklast zeigt die 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ü des Diagramms auswählen.

Sie können die Datenbanklast nach einer der folgenden Dimensionen aufschlüsseln:

  • Abfrage
  • Warteereignistyp
  • Warteereignis
  • Datenbank
  • Nutzer

So rufen Sie die von ausgeführten Abfragen in Ihrer Datenbank erledigte Arbeit auf:

  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 auf eine Instanz.

  3. Klicken Sie auf Query Insights.

  4. Wählen Sie die Datenbank und den Nutzer aus.

  5. Wählen Sie die Gesamtausführungszeit aus, für die Sie Daten anzeigen möchten, z. B. 1 oder 6 Stunden oder eine benutzerdefinierte Zeit.

  6. Wählen Sie im Drop-down-Menü Datenbanklast nach Ausführungszeit die Dimension aus, die Sie untersuchen möchten. Je nach ausgewählter Dimension wird im Diagramm angezeigt, wie die ausgewählte Dimension zur Gesamtdatenbanklast beiträgt. Wenn Sie beispielsweise die Dimension Warteereignisse aus dem Drop-down-Menü des Diagramms zur Datenbanklast auswählen, wird im Diagramm zur Datenbanklast die Aufschlüsselung aller Warteereignisse angezeigt, die im ausgewählten Zeitraum für die ausgewählte Datenbank und den ausgewählten Nutzer aufgetreten sind.

    Im Diagramm zur Datenbanklast werden Daten für alle neun Warteereignistypen und die in PostgreSQL unterstützten Warteereignisse angezeigt. Je nach Anzahl der Warteereignisse und -typen werden die zehn wichtigsten Warteereignisse und -typen angezeigt. Wenn mehr als zehn Warteereignisse vorhanden sind, werden die neun wichtigsten Warteereignisse angezeigt und die restlichen in der Kategorie Sonstige gruppiert. Dieser Ansatz gilt auch für andere Dimensionen wie Abfragen, Datenbanken und Nutzer.

Top-Beitragende zur Datenbanklast ansehen

In der Tabelle Top-Dimensionen nach Datenbanklast sehen Sie die wichtigsten Faktoren für die Datenbanklast im ausgewählten Zeitraum und in der Dimension, die im Diagramm Datenbanklast ausgewählt ist. Je nachdem, welche Dimension Sie in der Tabelle Top-Dimensionen nach Datenbanklast auswählen, können Sie die Top-Werte für das ausgewählte Zeitfenster finden.

  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 auf eine Instanz.

  3. Klicken Sie auf Query Insights.

  4. Wählen Sie die Datenbank und den Nutzer aus.

  5. Wählen Sie die Gesamtausführungszeit aus, für die Sie Daten anzeigen möchten, z. B. 1 oder 6 Stunden oder eine benutzerdefinierte Zeit.

  6. In der Tabelle Top-Dimensionen nach Datenbanklast können Sie auf eine der folgenden Optionen klicken:

    Dimension Beschreibung
    Abfragen In der Tabelle werden die wichtigsten normalisierten Abfragen nach Gesamtausführungszeit angezeigt. Für jede Abfrage werden die in Spalten angezeigten Daten so aufgeführt:
    • Durchschn. Ausführungszeit (ms). Durchschnittliche Zeit für die Ausführung der Abfrage.
    • Gesamtausführungszeit (ms). Die Gesamtausführungszeit der jeweiligen Abfrage.
    • Zurückgegebene Zeilen Die durchschnittliche Anzahl der Zeilen, die für die Abfrage abgerufen wurden.
    • Anzahl der Aufrufe: Wie oft die Abfrage von der Anwendung aufgerufen wurde.
    • %Last nach Diagrammdimension. Das Pillendiagramm zeigt, wie die Dimension des Diagramms für die jeweilige Abfrage verteilt ist.
    Warteereignistypen In der Tabelle wird die Liste der wichtigsten Warteereignistypen angezeigt, 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, die die Abfragen im jeweiligen Warteereignistyp verbracht haben.
    • Anzahl der Warteereignistypen. Die Häufigkeit, mit der ein bestimmter Warteereignistyp im ausgewählten Zeitraum aufgetreten ist.
    • %Last nach Diagrammdimension. Das Pillendiagramm zeigt, wie die im Drop-down-Menü des Diagramms zur Datenbanklast ausgewählte Dimension des Diagramms auf den jeweiligen Warteereignistyp verteilt ist.
    Warteereignisse In der Tabelle wird die Liste der wichtigsten Warteereignisse angezeigt, 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.
    • %Last nach Diagrammdimension. Das Pillendiagramm zeigt, wie die im Drop-down-Menü des Diagramms zur Datenbanklast ausgewählte Dimension des Diagramms auf das jeweilige Warteereignis verteilt ist.
    Datenbank Die Tabelle enthält die Liste der Top-Datenbanken, die im ausgewählten Zeitraum über alle ausgeführten Abfragen hinweg zur Last beigetragen haben.
    • Durchschnittliche Zeit in der Datenbank (ms). Durchschnittliche Zeit, die die Abfragen in der jeweiligen Datenbank verbracht haben.
    • Gesamtzeit in Datenbank (ms). Die Gesamtausführungszeit, die die Abfragen in der jeweiligen Datenbank verbracht haben.
    • %Last nach Diagrammdimension. Das Pillendiagramm zeigt, wie die im Drop-down-Menü des Diagramms zur Datenbanklast ausgewählte Dimension des Diagramms auf die jeweilige Datenbank verteilt ist.
    Nutzer Die Tabelle enthält die Liste der Top-Nutzer für den ausgewählten Zeitraum für alle ausgeführten Abfragen.
    • Durchschn. Zeit in Nutzer (ms). Durchschnittliche Zeit, die die Abfragen für den jeweiligen Nutzer aufgewendet haben.
    • Gesamtzeit in Nutzer (ms). Die Gesamtausführungszeit, die die Abfragen im spezifischen Nutzer verbracht haben.
    • %Last nach Diagrammdimension. Das Pillendiagramm zeigt, wie die im Drop-down-Menü des Diagramms zur Datenbanklast ausgewählte Dimension des Diagramms auf den jeweiligen Nutzer verteilt ist.

Ausführungszeit von Abfragen ansehen

Die erweiterten Query Insights-Funktionen für AlloyDB zeigen die zehn Abfragen, die am meisten zur Datenbanklast beitragen, in der Tabelle Top-Dimensionen nach Datenbanklast an. Die Top-Abfrage ist diejenige, die im ausgewählten Zeitraum am meisten zur Datenbanklast beigetragen hat. Die nachfolgenden Abfragen sind ein Prozentsatz der längsten Ausführungszeit.

So finden Sie heraus, wie sich die Ausführungszeit eines Parameters in Top-Dimensionen nach Datenbanklast durch verschiedene Werte der ausgewählten Diagrammdimension (Abfragen, Warteereignistypen, Warteereignisse, Datenbanken und Nutzer) ändert:

  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 auf eine Instanz.

  3. Klicken Sie auf Query Insights.

  4. Wählen Sie die Datenbank und den Nutzer aus.

  5. Sehen Sie sich in der Tabelle Top-Dimensionen nach Datenbanklast den Wert % Last nach Diagrammdimension an, um zu erfahren, wie sich ein Parameter in der Tabelle auf Parameter im Diagramm Datenbanklast auswirkt.

    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 die größte Datenbanklast in der ausgewählten Datenbank verursacht haben.

Details zur Ausführungszeit von Abfragen aufrufen

Unter Weitere Details 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 Sonstige zusammengefasst sind.

Unter Weitere Details werden auch Details zu komplexen Informationen angezeigt, die an anderer Stelle auf dem Bildschirm mit den Abfragedetails nicht zu sehen sind. Diese Informationen enthalten die Definition der einzelnen Warteereignisse.

So rufen Sie Details zur Abfrageausführungszeit auf:

  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 auf eine Instanz.

  3. Klicken Sie auf Query Insights.

  4. Wählen Sie die Datenbank und den Nutzer aus.

  5. Klicken Sie in der Tabelle Top-Dimensionen nach Datenbanklast für eine Abfrage auf Weitere Details.

Erweiterte Query Insights-Funktionen für AlloyDB zeigen normalisierte Abfragen ($1, $2 usw.) an, 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 konstante Wert wird ignoriert, damit in Advanced 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:

  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 auf eine Instanz.

  3. Klicken Sie auf Query Insights.

  4. Wählen Sie die Datenbank und den Nutzer aus.

  5. Klicken Sie im Diagramm Datenbanklast auf Abfragen. Zur Berechnung der Datenbanklast wird im Diagramm Datenbanklast die Zeit, die von den normalisierten Abfragen innerhalb des Minutenintervalls benötigt wird, zur tatsächlich verstrichenen Zeit verwendet.

Am Anfang des Diagramms Datenbanklast werden die ersten 10 KB der normalisierten Abfrage angezeigt. Literale werden dabei wegen Aggregation und personenidentifizierbaren Informationen entfernt.

Um die Verteilung der Zeit in jedem dieser Zustände zu ermitteln, verteilen die erweiterten Query Insights-Funktionen für AlloyDB die Lasten pro normalisierter Abfrage auf Warteereignisse und Warteereignistypen.

Mit den Latenzdiagrammen 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 der parallelen 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 nicht der erwarteten Ausführungszeit entsprechen. Ändern Sie das Zeitfenster, um die bisherige Latenz für die normalisierte Abfrage zu analysieren.

Normalisierte Abfragen analysieren

Mithilfe von Abfrageplänen können Sie normalisierte Abfragen nachvollziehen 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:

  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 auf eine Instanz.

  3. Klicken Sie auf Query Insights.

  4. Wählen Sie die Datenbank und den Nutzer aus.

  5. Wählen Sie die Gesamtausführungszeit aus, für die Sie Daten anzeigen möchten, z. B. 1 oder 6 Stunden oder eine benutzerdefinierte Zeit.

  6. Klicken Sie in der Tabelle Top-Dimensionen nach Datenbanklast auf eine Abfrage.

  7. 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

Erweiterte Query Insights bieten ein anwendungsorientiertes Monitoring und vereinfachen die Leistungsdiagnose von Anwendungen, die mit objektrelationaler Zuordnung (ORM) erstellt wurden. Mit der Tag-Kennzeichnung von Abfragen können Sie Probleme auf übergeordneten Konstrukten finden, z. B. mit der Geschäftslogik, einem Mikrodienst oder einem anderen Konstrukt. Sie können Tags in Ihrer Anwendung für Folgendes verwenden:

  • Datenbankleistung überwachen
  • Mit Sqlcommenter Leistungsprobleme identifizieren, die durch Anwendungscode verursacht werden.
  • Datenbanklast analysieren
  • Sehen Sie sich die Last pro Tag an.

Informationen zur Verwendung von Tags in Query Insights finden Sie unter Abfrageleistung mit Query Insights verbessern.

Fehlerbehebung bei Anwendungen auf der Datenbankebene

Erweiterte Query Insights bieten eine kontextbezogene End-to-End-Trace-Ansicht, mit der Sie Probleme mit der Anwendung auf der Datenbankebene für eine bestimmte Anfrage nachvollziehen können. Mit kontextbezogenen End-to-End-Anwendungs-Traces können Sie die Quelle der problematischen Abfrage ermitteln, z. B. nach Modell, Ansicht, Controllern und Route.

Wenn Sie OpenTelemetry aktivieren, werden Span-Informationen zusammen mit den Tag-Informationen 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 Trace im Kontext auf:

  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 auf eine Instanz.

  3. Klicken Sie auf Query Insights.

  4. Wählen Sie die Datenbank und den Nutzer aus.

  5. Klicken Sie in der Tabelle Top-Dimensionen nach Datenbanklast auf einen beliebigen Eintrag.

  6. Klicken Sie auf der Seite Query Insights-Details auf END TO END.

Sie können Cloud Trace verwenden, um das End-to-End-Tracing für jeden Schritt im Abfrageplan zu sehen. Wählen Sie Vorgänge > Trace aus, um auf Cloud Trace zuzugreifen.

Häufig gestellte Fragen

In diesem Abschnitt finden Sie Antworten auf häufig gestellte Fragen zu erweiterten Query Insights-Funktionen.

Warum wird der Abfragestring abgeschnitten?

Standardmäßig werden in erweiterten Query Insights-Funktionen 10 KB in Abfragestrings angezeigt. Sie können die Anzeige auf 100 KB erhöhen.

Warum liegt meine CPU-Auslastung im Diagramm „Datenbanklast“ über der maximalen Kernlinie?

CPU-Lasten berücksichtigen 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 Standardmesswerte von Query Insights verwenden?

Ja. Standard-Query Insights generieren Zähler, auf die über Stackdriver zugegriffen werden kann. Diese Messwerte sind über die Cloud Monitoring API und die Metrics Explorer-Benutzeroberfläche verfügbar. Weitere Informationen finden Sie unter Google Cloud -Messwerte.

Wie lang darf ein Abfragestring maximal sein?

Beim Standard-Plug-in für Query Insights ist die maximale Länge des Abfragestrings auf 4, 5 KB Zeichen begrenzt. Für erweiterte Query Insights beträgt die Standardstringlänge 10 KB und die maximale Länge ist auf 100 KB begrenzt.

Kann ich erweiterte Query Insights-Funktionen mit sekundären Clustern verwenden?

Sie können erweiterte Query Insights-Funktionen für primäre Cluster aktivieren, für die sekundäre Cluster konfiguriert sind. Für sekundäre Cluster können Sie erweiterte Query Insights-Funktionen jedoch nicht aktivieren. Wenn Sie einen Switchover ausführen, müssen Sie Advanced Query Insights für den neuen primären Cluster wieder aktivieren.

Nächste Schritte