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

Auf dieser Seite wird beschrieben, wie Sie mithilfe erweiterter Query Insights-Funktionen für AlloyDB Probleme mit der Abfrageleistung sowohl für primäre als auch für Lesepool-Instanzen in Echtzeit erkennen und analysieren. Eine Übersicht über die erweiterten Query Insights-Funktionen für AlloyDB finden Sie unter Erweiterte Query Insights-Funktionen für AlloyDB.

Informationen zur Verwendung von Standardabfragestatistiken 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.

Hinweise

Wenn Sie auf das Dashboard für Abfragestatistiken zugreifen möchten, aktivieren Sie den Zugriff auf AlloyDB for PostgreSQL in Ihrem Google Cloud-Projekt.

Erforderliche Rollen

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

  • Wenn Sie auf erweiterte Funktionen für Abfragestatistiken für AlloyDB zugreifen möchten, benötigen Sie Berechtigungen für das AlloyDB-Dashboard für Abfragestatistiken.
  • Wenn Sie die Einstellungen für erweiterte 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-Betrachter (roles/databaseinsights.viewer)

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

Erweiterte Abfragestatistiken für AlloyDB aktivieren

So aktivieren Sie die erweiterte Konfiguration von 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. Wählen Sie die Datenbank und den Nutzer aus.

  5. Klicken Sie auf Aktivieren oder Einstellungen bearbeiten.

  6. Klicken Sie auf dem Tab Einstellungen für Query Insights bearbeiten das Kästchen Erweiterte Query Insights-Funktionen für AlloyDB aktivieren an.

    Das führt standardmäßig zu den folgenden Konfigurationsänderungen:

    • Die Kästchen Analyse von Warteereignissen und Analyse aktiver Abfragen werden aktiviert.
    • Die Abfragelänge wird von 4.500 B auf 100.000 B erhöht.
    • Die maximale Stichprobenrate wird von 20 auf 200 Abfrageplanstichproben pro Minute erhöht.
  7. Speichern Sie die Änderungen. Dadurch wird Ihre AlloyDB for PostgreSQL-Instanz neu gestartet.

gcloud

gcloud alpha 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 zu einer AlloyDB-Instanz erfasst und analysiert werden, um deren Leistung und Verfügbarkeit zu überwachen. Wenn Sie erweiterte Abfragestatistiken 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, legen Sie das Feld enabled im Block observability_config auf true fest.

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 Abfrage-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 Einstellungen für erweiterte Abfragestatistiken finden Sie unter Einstellungen für erweiterte Abfragestatistiken bearbeiten.

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • CLUSTER_ID: die ID des von Ihnen erstellten Clusters. 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: Name der primären Instanz, die Sie erstellen möchten.

Verwenden Sie die folgende PATCH-Anfrage, um die Instanzkonfiguration zu aktivieren:

PATCH https://alloydb.googleapis.com/v1beta/{instance.name=projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID?updateMask=observabilityConfig.enabled}

Der Abfrageparameter updateMask=observabilityConfig.enabled weist die API an, das Feld enabled innerhalb des Blocks observabilityConfig zu aktualisieren.

Der JSON-Anfragetext sieht so aus:

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

Nachdem Sie die erweiterten Abfragestatistiken aktiviert haben, können Sie die Einstellungen für erweiterte Abfragestatistiken bearbeiten.

Einstellungen für erweiterte Funktionen bearbeiten

So bearbeiten Sie die Konfiguration der erweiterten Suchanfragestatistiken 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: Mit der Analyse von Warteereignissen können Sie Leistungsprobleme in Ihrer Datenbank erkennen und beheben. Ein Warteereignis ist eine Komponente, die zu einer Verzögerung bei der Verarbeitung einer Abfrage führt.
    • Analyse aktiver Abfragen: Hier können Sie aktiv ausgeführte Abfragen im Blick behalten.
    • Abfragekommentare speichern: Durch die mit einer Abfrage, die Sie untersuchen, verknüpften Kommentare als Teil der Abfragelänge erfahren Sie mehr ü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 werden auf der Seite „Query Insights“ eines Clusters angezeigt.
    • Im Feld Ausführungshäufigkeit auswählen können Sie die Aktualisierungshäufigkeit für Empfehlungen festlegen.
    • Client-IP-Adressen speichern: Wenn Sie diese Option aktivieren, werden Client-IP-Adressen erfasst und analysiert.
    • 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.
    • 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änge 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 alpha alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--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

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 liegen kann. 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. Wenn Sie die Abfragelänge ändern möchten, 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 20. Wenn Sie die Stichprobenerhebung deaktivieren möchten, geben Sie „0“ ein. Wenn Sie die Abtastrate erhöhen, erhalten Sie wahrscheinlich mehr Datenpunkte. Allerdings kann dies zu Leistungseinbußen führen.

Verwenden Sie bei Bedarf die folgenden optionalen Flags für die Observabilität:

  • --observability-config-track-active-queries: Ermöglicht das Überwachen aktiver Abfragen. Wenn Sie die Funktion deaktivieren möchten, verwenden Sie --no-observability-config-track-active-queries.
  • --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 Anmerkungen im SQL-Code bei, um Informationen zum Code bereitzustellen, ohne die Ausführung zu beeinträchtigen. Wenn Sie Anmerkungen nicht beibehalten möchten, verwenden Sie --no-observability-config-preserve-comments.
  • --observability-config-track-wait-events: Ermöglicht das Warten auf Ereignisse jedes Warteereignistyps. Wenn Sie keine Wartezeit-Ereignisse erfassen möchten, verwenden Sie --no-observability-config-track-wait-events.

Terraform

Wenn Sie mit Terraform erweiterte Query Insights für Ihre AlloyDB-Instanz konfigurieren möchten, 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
  }
  

Ersetzen Sie Folgendes:

  • ENABLED_VALUE: Status der Observabilitätsfunktion für eine Instanz. Legen Sie beim Bearbeiten der Einstellungen true fest und geben Sie bei Bedarf weitere 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 1024 und 100.000 ist zulässig.
  • 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 pro Minute für alle Abfragen erfasst werden. Der Standardwert ist 20. Jede Ganzzahl zwischen 0 und 20 ist zulässig.
  • TRACK_ACTIVE_QUERIES_VALUE: Sie können aktiv ausgeführte Abfragen im Blick behalten. 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 Einstellungen für Query Insights in Ihrer AlloyDB-Instanz konfiguriert. Eine vollständige Liste der Parameter für diesen Aufruf finden Sie unter Methode: projects.locations.clusters.instances.patch.

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

Ersetzen Sie diese Werte in den folgenden Anweisungen:

  • CLUSTER_ID: die ID des von Ihnen erstellten Clusters. 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: Name der primären Instanz, die Sie erstellen möchten.

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

PATCH https://alloydb.googleapis.com/v1beta/{instance.name=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,observabilityConfig.trackClientAddress}

Der JSON-Anfragetext, mit dem alle Felder für erweiterte Suchanfragestatistiken konfiguriert werden, sieht so aus:

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

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

  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 Daten angezeigt werden sollen, z. B. 1 oder 6 Stunden oder eine benutzerdefinierte Zeit.

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

  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 Daten angezeigt werden sollen, 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 Die Tabelle enthält die Top-normalisierten Abfragen nach Gesamtausführungszeit. Für jede Abfrage werden die in den Spalten angezeigten Daten so aufgeführt:
    • 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, die die Abfragen im jeweiligen Warteereignistyp verbracht haben.
    • 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 sich die im Drop-down-Menü für das Diagramm zur Datenbankauslastung ausgewählte Diagrammdimension auf den jeweiligen Nutzer verteilt.

Abfrageausführungszeit aufrufen

In den erweiterten Funktionen für Query Insights für AlloyDB werden in der Tabelle Top-Dimensionen nach Datenbanklast die zehn Abfragen angezeigt, die 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:

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

  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.

In den erweiterten Query Insights-Funktionen für AlloyDB werden normalisierte Abfragen (z. B. $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 Abfragestatistiken ä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 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 die normalisierten Abfragelasten mithilfe erweiterter Funktionen für Abfragestatistiken in AlloyDB 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:

  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 Daten angezeigt werden sollen, 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 Abfragestatistiken ermöglichen ein 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

Erweiterte Abfragestatistiken bieten eine kontextbezogene End-to-End-Trace-Ansicht, mit der Sie Probleme mit der Anwendung auf 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, 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:

  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 auf einen beliebigen Eintrag in der Tabelle Top-Dimensionen nach Datenbanklast.

  6. 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 den Funktionen für erweiterte Suchanfragestatistiken.

Warum wird der Suchstring abgeschnitten?

Standardmäßig werden in erweiterten Suchanfrage-Statistiken 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 für Abfragestatistiken verwenden?

Ja. Bei Standardabfragen werden Zähler generiert, auf die über Stackdriver zugegriffen werden kann. Diese Messwerte sind mithilfe der Cloud Monitoring API mit erweiterten Abfragestatistiken verfügbar. Weitere Informationen finden Sie unter Google Cloud -Messwerte.

Wie lang darf ein Abfragestring maximal sein?

Für das Standard-Plug-in für Statistiken zu Abfragen ist die maximale Länge des Abfragestrings auf 4, 5 KB begrenzt. Für erweiterte Suchanfragedaten beträgt die Standardstringlänge 10 KB und die maximale Länge ist auf 100 KB begrenzt.

Kann ich erweiterte Query Insights-Funktionen für AlloyDB bei der regionenübergreifenden Replikation verwenden?

Sie können erweiterte Abfragestatistiken für AlloyDB nicht in Clustern mit sekundären Instanzen aktivieren. Wenn Sie eine sekundäre Instanz in einem Cluster erstellen möchten, müssen Sie die Funktionen für erweiterte Abfragestatistiken für AlloyDB in allen Instanzen im Cluster deaktivieren, falls diese Funktionen bereits aktiviert sind.

Nächste Schritte