Auf dieser Seite wird beschrieben, wie Sie mit erweiterten Query Insights-Funktionen für AlloyDB Probleme mit der Abfrageleistung in Primär- und Lesepoolinstanzen nahezu in Echtzeit erkennen und analysieren können. Eine Übersicht über die erweiterten Query Insights-Funktionen für AlloyDB finden Sie unter Erweiterte Query Insights-Funktionen für AlloyDB – Übersicht.
Informationen zur Verwendung von Standardabfragestatistiken finden Sie unter Abfrageleistung mit Abfragestatistiken verbessern.
Mit Gemini Cloud Assist können Sie Ihre AlloyDB-Ressourcen überwachen und Fehler beheben. Weitere Informationen finden Sie unter Mit Gemini in Datenbanken beobachten und Fehler beheben.
Hinweise
Wenn Sie auf das Dashboard für Abfrageanalysen 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:
- Für den Zugriff auf erweiterte Query Insights-Funktionen für AlloyDB benötigen Sie Berechtigungen für 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
) - Viewer von Database Insights (
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
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.
Klicken Sie auf Aktivieren oder Einstellungen bearbeiten.
Wählen Sie auf dem Tab Query Insights-Einstellungen bearbeiten das Kästchen Erweiterte Query Insights-Funktionen für AlloyDB aktivieren aus.
Das führt standardmäßig zu den 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.
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
.
Das Flag --observability-config-enabled
ermöglicht das Erfassen und Analysieren von Daten zu einer AlloyDB-Instanz, 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-Funktionen 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 Query Insights-Funktionen 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 Einstellungen für Query Insights finden Sie unter Erweiterte Einstellungen für Query Insights bearbeiten.
Ersetzen Sie diese Werte in den folgenden 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 Sie den Cluster platzieren möchten.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 Konfiguration Ihrer Instanz 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
im Block observabilityConfig
zu aktualisieren.
Der JSON-Anfragetext sieht so aus:
{
"observabilityConfig": {
"enabled" : true,
}
}
Nachdem Sie die erweiterten Query Insights aktiviert haben, können Sie die Einstellungen bearbeiten.
Einstellungen für erweiterte Funktionen bearbeiten
So bearbeiten Sie die Konfiguration für erweiterte Query Insights für eine AlloyDB-Instanz:
Console
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.
Klicken Sie auf Einstellungen bearbeiten und ändern Sie dann eine der 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.
- Analyse aktiver Abfragen: Verfolgen Sie aktiv ausgeführte Abfragen.
- 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 auf der Seite „Query Insights“ eines Clusters anzeigen.
- Im Feld Laufhäufigkeit auswählen können Sie die Aktualisierungshäufigkeit für Empfehlungen festlegen.
- Client-IP-Adressen speichern: Aktivieren Sie diese Option, um Client-IP-Adressen zu erfassen und die Daten zu analysieren.
- Anwendungs-Tags speichern: Wenn Sie diese Option aktivieren, können Sie ermitteln, welche APIs und Model-View-Controller-Routen Anfragen stellen, und diese Daten zum Erstellen von entsprechenden Messwerten gruppieren.
- Stichproben für Abfragepläne: 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 die Länge von Abfragen ändern, von 256 Byte bis zu 100 KB. Größere Abfragelängen erfordern mehr Arbeitsspeicher. Wenn Sie die Abfragelänge ändern, muss die Instanz neu gestartet werden.
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 Anfrage, 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 zwischen 1 und 20. Geben Sie 0 ein, um die Stichprobenerhebung zu deaktivieren. 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 Observability-Flags:
--observability-config-track-active-queries
: Ermöglicht das Erfassen aktiver Abfragen. Wenn Sie das Feature 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 Anwendungstags speichern möchten, verwenden Sie--no-observability-config-record-application-tags
.--observability-config-preserve-comments
: Behält Anmerkungen bei, die dem SQL-Code hinzugefügt wurden, um Informationen zum Code bereitzustellen, ohne die Ausführung zu beeinträchtigen. Wenn Sie keine Anmerkungen behalten möchten, verwenden Sie--no-observability-config-preserve-comments
.--observability-config-track-wait-events
: Ermöglicht das Warten auf Ereignisse der einzelnen Warteereignistypen. Wenn Sie keine Warteereignisse erfassen möchten, verwenden Sie--no-observability-config-track-wait-events
.
Terraform
Wenn Sie Terraform verwenden möchten, um erweiterte Query Insights für Ihre AlloyDB-Instanz zu konfigurieren, verwenden Sie die google_alloydb_instance
-Ressource.
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 Observability-Funktion für eine Instanz. Legen Sietrue
fest, wenn Sie die Einstellungen bearbeiten und bei Bedarf andere Flags angeben.PRESERVE_COMMENTS_VALUE
: Kommentare im Abfragestring beibehalten. Der Standardwert istfalse
.TRACK_WAIT_EVENTS_VALUE
: Warteereignisse während der Ausführung von Abfragen für eine Instanz aufzeichnen. Der Standardwert isttrue
.MAX_QUERY_STRING_LENGTH_VALUE
: Länge des Abfragestrings. Der Standardwert ist10240
. Gültig ist jede Ganzzahl zwischen 1024 und 100.000.RECORD_APPLICATION_TAGS_VALUE
: Anwendungs-Tags für eine Instanz aufzeichnen. Der Standardwert isttrue
.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 ist20
. Ganzzahlen zwischen 0 und 20 sind gültig.TRACK_ACTIVE_QUERIES_VALUE
: Aktive Abfragen verfolgen. Der Standardwert istfalse
.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 Einstellungen für Abfrage-Insights 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 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 Sie den Cluster platzieren möchten.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 Konfiguration Ihrer Instanz 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-Text der Anfrage, mit dem alle Felder für erweiterte Abfrage-Insights konfiguriert werden, sieht so aus:
{
"observabilityConfig": {
"enabled" : true,
"preserveComments": true,
"trackWaitEvents": true,
"maxQueryStringLength": 5000,
"recordApplicationTags": true,
"queryPlansPerMinute": 20,
"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 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 von ausgeführten Abfragen geleistete Arbeit ansehen
Das Diagramm zur Datenbanklast gibt das Maß der Arbeit (in CPU-Sekunden) an, 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:
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 Sie Daten anzeigen lassen möchten, z. B. 1 oder 6 Stunden oder eine benutzerdefinierte Zeit.
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 dargestellt, wie die ausgewählte Dimension zur gesamten Datenbanklast beiträgt. Wenn Sie beispielsweise die Dimension Warteereignisse aus dem Drop-down-Menü für das Diagramm 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 es mehr als zehn Warteereignisse gibt, werden die neun wichtigsten Warteereignisse angezeigt und die restlichen in der Kategorie Andere gruppiert. Dieser Ansatz gilt auch für andere Dimensionen wie „Abfragen“, „Datenbanken“ und „Nutzer“.
Top-Beiträge zur Datenbanklast ansehen
In der Tabelle Top-Dimensionen nach Datenbanklast sehen Sie die wichtigsten Faktoren für die Datenbanklast für den ausgewählten Zeitraum und die 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 den ausgewählten Zeitraum ermitteln.
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 Sie Daten anzeigen lassen möchten, z. B. 1 oder 6 Stunden oder eine benutzerdefinierte Zeit.
In der Tabelle Top-Dimensionen nach Datenbanklast können Sie auf Folgendes klicken:
Dimension Beschreibung Abfragen In der Tabelle werden die wichtigsten normalisierten Abfragen nach Gesamtausführungszeit angezeigt. 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. Im Pillendiagramm wird dargestellt, 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.
- Durchschnittliche Zeit in Wartezustand (ms). Die durchschnittliche Zeit, die die Anfragen im jeweiligen Warteereignistyp verbracht haben.
- Gesamtzeit im Wartezustand (ms). Die Gesamtausführungszeit, die die Abfragen für den jeweiligen Warteereignistyp benötigt haben.
- Anzahl der Warteereignistypen: Die Anzahl der Male, die ein bestimmter Warteereignistyp im ausgewählten Zeitraum aufgetreten ist.
- %der Last nach Diagrammdimension. Im Pillendiagramm wird dargestellt, wie die Dimension des Diagramms, die im Drop-down-Menü des Diagramms für die Datenbanklast ausgewählt ist, auf den jeweiligen Warteereignistyp verteilt ist.
Warteereignisse In der Tabelle wird eine Liste der wichtigsten Warteereignisse angezeigt, die im ausgewählten Zeitraum aufgetreten sind.
- Durchschnittliche Zeit in Wartezustand (ms). Durchschnittliche Zeit, die die Abfragen im jeweiligen Warteereignis verbracht haben.
- Gesamtzeit im Wartezustand (ms). Die Gesamtausführungszeit, die die Abfragen im jeweiligen Warteereignis verbracht haben.
- Anzahl der Warteereignisse: Die Anzahl der Male, die ein bestimmtes Warteereignis im ausgewählten Zeitraum aufgetreten ist.
- %der Last nach Diagrammdimension. Im Pillendiagramm wird dargestellt, wie die im Drop-down-Menü des Diagramms zur Datenbanklast ausgewählte Dimension auf das jeweilige Warteereignis verteilt ist.
Datenbank Die Tabelle enthält eine Liste der wichtigsten 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 der Datenbank (ms). Die Gesamtausführungszeit der Abfragen in der jeweiligen Datenbank.
- %der Last nach Diagrammdimension. Im Pillendiagramm wird dargestellt, wie die Dimension des Diagramms, die im Drop-down-Menü des Diagramms zur Datenbanklast ausgewählt wurde, 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.
- Durchschnittliche Zeit im Nutzer (ms). Durchschnittliche Zeit, die die Anfragen für den jeweiligen Nutzer benötigt haben.
- Gesamtzeit im Nutzer (ms). Die Gesamtausführungszeit der Abfragen für den jeweiligen Nutzer.
- %der Last nach Diagrammdimension. Im Pillendiagramm wird dargestellt, wie die Dimension des Diagramms, die im Drop-down-Menü für das Datenbankladediagramm ausgewählt ist, auf den jeweiligen Nutzer verteilt ist.
Ausführungszeit von Abfragen ansehen
Die erweiterten Query Insights-Funktionen für AlloyDB zeigen in der Tabelle Top-Dimensionen nach Datenbanklast die zehn wichtigsten Abfragen an, 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 sehen Sie, wie sich die Ausführungszeit eines Parameters im Bericht Top-Dimensionen nach Datenbanklast auf verschiedene 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 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 am meisten zur Datenbanklast in der ausgewählten Datenbank beigetragen haben.
Details zur Abfrageausführungszeit ansehen
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 Andere enthalten 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 Ausführungszeit von Abfragen 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.
Bei den erweiterten Query Insights-Funktionen für AlloyDB 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 den 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 die Ressourcennutzung durch die Abfrageausführung (in CPU-Sekunden) auf, die die ausgewählte normalisierte Abfrage in der ausgewählten Datenbank im Zeitverlauf 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 Datenbanklast auf Abfragen. Zur Berechnung der Datenbanklast wird im Diagramm Datenbanklast die Zeit, die von normalisierten Abfragen benötigt wird, die innerhalb der Minutengrenze abgeschlossen werden, zur tatsächlich verstrichenen Zeit verwendet.
Oben im Diagramm 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 den einzelnen Status zu ermitteln, werden mit den erweiterten Query Insights-Funktionen für AlloyDB normalisierte Abfragelasten in Warteereignisse und Warteereignistypen unterteilt.
Mit den Latenz-Diagrammen 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 so Abfragen zu erkennen, die nicht der erwarteten Ausführungszeit entsprechen. 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 besser 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:
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 Sie Daten anzeigen lassen möchten, 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 mit Tags überwachen und Fehler beheben
Erweiterte Query Insights bieten 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 höherer Ebene ermitteln, z. B. mit der Geschäftslogik, einem Mikrodienst oder einem anderen Konstrukt. Sie können Tags in Ihrer Anwendung verwenden, um Folgendes zu tun:
- 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 Datenbankebene für eine bestimmte Anfrage nachvollziehen können. Mithilfe von 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 Informationen zu Spans sowie die Taginformationen innerhalb von 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 Abfrage-Insights 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 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 den erweiterten Funktionen für Abfrageanalysen.
Warum wird der Query-String gekürzt?
Standardmäßig werden in den erweiterten Abfrage-Insights 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-Last 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-Last die maximale Kernlinie überschreiten.
Kann ich Standardmesswerte für Abfragestatistiken verwenden?
Ja. Bei Standard-Suchanfragen werden Zähler generiert, 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?
Für das Standard-Plugin für Abfrage-Insights ist die maximale Länge des Abfragestrings auf 4, 5 KB begrenzt. Für erweiterte Abfrage-Insights beträgt die Standardlänge des Strings 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 Abfragestatistiken nicht für Cluster mit sekundären Instanzen aktivieren. Bevor Sie eine sekundäre Instanz in einem Cluster erstellen, müssen Sie die erweiterten Query Insights-Funktionen für alle Instanzen im Cluster deaktivieren.
Nächste Schritte
- Erweiterte Query Insights-Funktionen für AlloyDB – Übersicht
- AlloyDB-Messwerte
- Blogpost mit Anleitung: "Abfrage-Tagging mit Sqlcommenter aktivieren"