Auf dieser Seite wird beschrieben, wie Sie mit dem Query Insights-Dashboard Leistungsprobleme bei Ihren Abfragen erkennen und analysieren.
Einführung
Mit Query Insights können Sie Probleme bei der Abfrageleistung in Cloud SQL-Datenbanken ermitteln, diagnostizieren und verhindern. Es unterstützt ein intuitives Monitoring und liefert Diagnoseinformationen, die Ihnen helfen, über die Erkennung hinaus die Ursache von Leistungsproblemen zu identifizieren.
Mit Query Insights können Sie die Leistung auf Anwendungsebene überwachen und die Quelle einer problematischen Abfrage im gesamten Anwendungspaket nach Modell, Ansicht, Controller, Route, Nutzer und Host verfolgen. Das Query Insights-Tool lässt sich mit offenen Standards und APIs in Ihre vorhandenen Tools zur Anwendungsüberwachung (APM) und in Google Cloud-Dienste einbinden. So können Sie Abfrageprobleme mit Ihrem Lieblingstool überwachen und beheben.
Mit Query Insights können Sie die Leistung von Cloud SQL-Abfragen verbessern. Dabei werden Sie durch die folgenden Schritte geführt:
- Datenbanklast für Top-Abfragen ansehen
- Potenziell problematische Abfrage oder potenziell problematisches Tag identifizieren
- Abfrage oder Tag ansehen, um Probleme zu ermitteln
- Von einer Beispielabfrage generierten Trace untersuchen
Query Insights für die Cloud SQL Enterprise Plus-Version
Wenn Sie die Cloud SQL Enterprise Plus-Version verwenden, können Sie auf zusätzliche Funktionen in Query Insights zugreifen, um eine erweiterte Diagnose der Abfrageleistung durchzuführen. Zusätzlich zu den Standardfunktionen des Query Insights-Dashboards können Sie mit Query Insights für die Cloud SQL Enterprise Plus-Version Folgendes tun:
- Warteereignisse für alle ausgeführten Abfragen erfassen und analysieren.
- Aggregierte Datenbanklast nach zusätzlichen Dimensionen wie Abfragen, Tags, Warteereignistypen und mehr filtern.
- Abfragepläne für alle ausgeführten Abfragen erfassen.
- Stichproben von bis zu 200 Abfrageplänen pro Minute.
- Längeren Abfragetext bis zu 1 MB erfassen.
- Aktualisierungen für Messwerte nahezu in Echtzeit (im Sekundenbereich) erhalten.
- Messwerte werden 30 Tage lang aufbewahrt.
- Indexempfehlungen vom Indexberater erhalten.
- Sitzung oder lang andauernde Transaktion in aktiven Abfragen beenden.
- Auf die KI-gestützte Fehlerbehebung (Vorschau) zugreifen.
In der folgenden Tabelle werden die funktionalen Anforderungen und Funktionen von Query Insights für die Cloud SQL Enterprise-Version mit Query Insights für die Cloud SQL Enterprise Plus-Version verglichen.
| Vergleichsbereich | Query Insights für die Cloud SQL Enterprise-Version | Query Insights für die Cloud SQL Enterprise Plus-Version |
|---|---|---|
| Unterstützte Datenbankversionen | MySQL 5.7 oder höher | MySQL 8.0 oder höher |
| Unterstützte Maschinentypen | Wird auf allen Maschinentypen unterstützt | Nicht unterstützt auf Instanzen, die einen Maschinentyp mit gemeinsam genutztem Kern verwenden |
| Unterstützte Regionen | Regionale Cloud SQL-Standorte | Regionale Standorte für die Cloud SQL Enterprise Plus-Version |
| Aufbewahrungsdauer für Messwerte | 7 Tage | 30 Tage |
| Maximale Abfragelänge | 4.500 Byte | 1 MB |
| Maximale Anzahl von Abfrageplanstichproben | 20 | 200 |
| Analyse der Warteereignisse | Nicht verfügbar | Verfügbar |
| Empfehlungen des Indexberaters | Nicht verfügbar | Verfügbar |
| Sitzungen oder lang andauernde Transaktionen in aktiven Abfragen beenden | Nicht verfügbar | Verfügbar |
| KI-gestützte Fehlerbehebung (Vorschau) | Nicht verfügbar | Verfügbar |
| Kardinalitätsgrenzwerte für Abfragen | Meldet die aggregierten Statistiken für bis zu 100 Abfragen mit einer Kombination aus Client-IP-Adressen, Datenbanken, Anwendungstags, Nutzernamen und Abfragetext pro Tag. | Meldet die aggregierten Statistiken für bis zu 4.000 Abfragen mit einer Kombination aus Client-IP-Adressen, Datenbanken, Nutzernamen und Abfrage-ID pro Minute. |
Query Insights für Cloud SQL Enterprise Plus aktivieren
Wenn Sie Query Insights für die Cloud SQL Enterprise Plus-Version aktivieren möchten, wählen Sie Enterprise Plus-Features aktivieren aus, wenn Sie Query Insights auf Ihrer Cloud SQL Enterprise Plus-Instanz aktivieren.
Preise
Für Query Insights auf Cloud SQL Enterprise- oder Cloud SQL Enterprise Plus-Instanzen fallen keine zusätzlichen Kosten an.
Speicherbedarf
Query Insights für die Cloud SQL Enterprise-Version belegt keinen Speicherplatz in Ihrem Cloud SQL-Instanzspeicher. Messwerte werden in Cloud Monitoring gespeichert. Informationen zu API-Anfragen finden Sie unter Cloud Monitoring-Preise. Cloud Monitoring bietet eine Stufe, die Sie ohne zusätzliche Kosten nutzen können.
Query Insights für die Cloud SQL Enterprise Plus-Version speichert Messwertdaten auf demselben Laufwerk, das an Ihre Cloud SQL-Instanz angehängt ist. Dazu muss die Einstellung für automatische Speichererweiterungen aktiviert sein.
Der Speicherbedarf für Daten von sieben Tagen beträgt etwa 45 GB. Für 30 Tage benötigen Sie etwa 180 GB. Query Insights für die Cloud SQL Enterprise Plus-Version verwendet bis zu 130 MB RAM. Messwerte sollten innerhalb von einer Minute nach Abschluss der Abfrage in Query Insights verfügbar sein. Es fallen die entsprechenden Speichergebühren an.Beschränkungen
Für Query Insights für Cloud SQL Enterprise Plus-Instanzen gelten die folgenden Einschränkungen:
- Wenn Ihre Instanz einer hohen Systemlast ausgesetzt ist, kann es beim Abfragen von Messwertdaten im Dashboard Query Insights zu langsamen Ladezeiten oder Zeitüberschreitungen kommen.
- Wenn Sie ein Lesereplikat neu erstellen, wird der bisherige Messwertverlauf nicht beibehalten.
- Wenn Sie eine Query Insights für Cloud SQL Enterprise Plus-Instanz aus einer älteren Sicherung wiederherstellen, gehen möglicherweise die Messwerte verloren, die zwischen dem Zeitpunkt der Sicherung und dem Zeitpunkt der Wiederherstellung der Instanz erfasst wurden. Wenn Sie beispielsweise Ihre Instanz am 30. April mit einer Sicherung vom 25. April wiederherstellen, gehen möglicherweise alle Messwerte zwischen dem 25. April und dem 30. April verloren.
Hinweis
Führen Sie die folgenden Schritte aus, bevor Sie Query Insights verwenden.
- Erforderliche Rollen und Berechtigungen hinzufügen
- Aktivieren Sie die Cloud Trace API.
- Wenn Sie Query Insights für die Cloud SQL Enterprise Plus-Version verwenden, muss Automatische Speichererweiterungen aktivieren für die Instanz aktiviert sein.
Erforderliche Rollen und Berechtigungen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, in dem die Cloud SQL-Instanz gehostet wird, um die Berechtigungen zu erhalten, die Sie für den Zugriff auf historische Abfrageausführungsdaten im Query Insights-Dashboard benötigen:
- Database Insights Viewer (
roles/databaseinsights.viewer) - Cloud SQL-Betrachter (
roles/cloudsql.viewer)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Cloud Trace API aktivieren
Wenn Sie Abfragepläne und ihre End-to-End-Ansichten aufrufen möchten, muss in Ihrem Google Cloud -Projekt die Cloud Trace API aktiviert sein. Mit dieser Einstellung kann IhrGoogle Cloud -Projekt ohne zusätzliche Kosten Trace-Daten von authentifizierten Quellen empfangen. Anhand dieser Daten können Sie Leistungsprobleme in Ihrer Instanz erkennen und diagnostizieren.
So prüfen Sie, ob die Cloud Trace API aktiviert ist:
- Rufen Sie in der Google Cloud Console APIs und Dienste auf:
- Klicken Sie auf APIs und Dienste aktivieren.
- Geben Sie in der Suchleiste
Cloud Trace APIein. - Wenn API aktiviert angezeigt wird, ist diese API aktiviert und Sie müssen nichts tun. Klicken Sie andernfalls auf Aktivieren.
Automatische Speichererhöhungen aktivieren
Wenn Sie Query Insights für die Cloud SQL Enterprise Plus-Version verwenden, muss die Instanzeinstellung Automatische Speichererweiterungen aktivieren aktiviert bleiben. Diese Option ist für Cloud SQL-Instanzen standardmäßig aktiviert.
Wenn Sie diese Instanzeinstellung zuvor deaktiviert haben und Query Insights für die Cloud SQL Enterprise Plus-Version aktivieren möchten, müssen Sie zuerst die automatische Speichererweiterung wieder aktivieren. Sie können die automatische Speichererhöhung nicht deaktivieren und Query Insights für die Cloud SQL Enterprise Plus-Version nicht aktivieren.
Query Insights aktivieren
Bevor Sie Query Insights aktivieren, beachten Sie die folgenden Neustartanforderungen:
Wenn Ihre Instanz mit der MySQL-Wartungsversion
20251004.01_RC06oder einer früheren Version ausgeführt wird und Sie Query Insights für die Cloud SQL Enterprise Plus-Version aktivieren, wird die Instanz neu gestartet. Es kann einige Minuten dauern, bis die Instanz wieder verfügbar ist. Daher werden alle anderen Vorgänge vorübergehend ausgesetzt, einschließlich der folgenden:- Systemdiagnosen
- Logging
- Monitoring
- Andere Instanzvorgänge
Wenn auf Ihrer Instanz die MySQL-Wartungsversion
20251004.01_RC07oder höher ausgeführt wird und Sie Query Insights aktivieren, ist kein Neustart erforderlich und die Instanzvorgänge bleiben verfügbar.
Console
Query Insights für eine Instanz aktivieren
-
Rufen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen auf.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie in der Kachel Konfiguration auf Konfiguration bearbeiten.
- Maximieren Sie im Bereich Instanz anpassen den Eintrag Query Insights.
- Klicken Sie das Kästchen Query Insights aktivieren an.
- Optional: Wählen Sie zusätzliche Funktionen für Ihre Instanz aus. Einige Funktionen sind nur für die Cloud SQL Enterprise Plus-Version verfügbar.
- Klicken Sie auf Speichern.
| Funktion | Beschreibung | Cloud SQL Enterprise-Version | Cloud SQL Enterprise Plus-Version |
|---|---|---|---|
| Leistungserfassung | Klicken Sie dieses Kästchen an, um die Leistungserfassung zu aktivieren. Dadurch wird ein Snapshot Ihrer Datenbank erstellt, wenn vorübergehende Leistungsprobleme basierend auf konfigurierbaren schwellenwertbasierten Triggern erkannt werden. Sie können die Leistungserfassung verwenden, um einen systemweiten Snapshot zu erstellen, wenn Standardmesswerte nicht ausreichen. Sie können auch die Leistungserfassung verwenden, um lang andauernde Transaktionen automatisch zu beenden. Weitere Informationen finden Sie unter Übersicht über die Cloud SQL-Leistungserfassung. |
Verfügbar
Standard: Mit Query Insights aktiviert, kann aber separat deaktiviert werden |
Verfügbar
Standard: Mit Query Insights aktiviert, kann aber separat deaktiviert werden |
| Enterprise Plus-Funktionen aktivieren | Klicken Sie dieses Kästchen an, um Query Insights für die Cloud SQL Enterprise Plus-Version zu aktivieren. Mit Query Insights für die Cloud SQL Enterprise Plus-Version können Sie Sitzungen und lang andauernde Transaktionen in aktiven Abfragen beenden, Empfehlungen des Indexberaters aktivieren, um die Abfrageverarbeitung zu beschleunigen, und die Datenaufbewahrung für Messwertdaten auf 30 Tage erhöhen. Empfehlungen des Indexberaters werden automatisch aktiviert, wenn Sie Query Insights für die Cloud SQL Enterprise Plus-Version aktivieren. Entfernen Sie das Häkchen, um die Empfehlungen des Indexberaters zu deaktivieren. Sie müssen dieses Kästchen anklicken, um Empfehlungen des Indexberaters und die KI-gestützte Fehlerbehebung (Vorschau) zu aktivieren. | Nicht verfügbar | Verfügbar
Standard: Deaktiviert |
| KI-gestützte Fehlerbehebung | Klicken Sie dieses Kästchen an, um die Erkennung von Leistungsanomalien, die Ursachen- und Situationsanalyse zu aktivieren und Empfehlungen zur Behebung von Problemen mit Ihren Abfragen und Ihrer Datenbank zu erhalten. Dieses Feature befindet sich im Vorschaumodus und kann nur über die Google Cloud Console aktiviert und aufgerufen werden. Weitere Informationen finden Sie unter Mit KI-Unterstützung beobachten und Fehler beheben. | Nicht verfügbar | Verfügbar
Standard: Deaktiviert |
| Client-IP-Adressen speichern | Wählen Sie dieses Kästchen aus, um die Speicherung von Client-IP-Adressen zu aktivieren. Cloud SQL kann die IP-Adressen speichern, von denen Abfragen stammen, und diese Daten gruppieren, um Messwerte damit auszuführen. Abfragen stammen von mehr als einem Host. Anhand der Grafiken zu Abfragen von Client-IP-Adressen können Sie die Ursache eines Problems ermitteln. | Verfügbar
Standard: Deaktiviert |
Verfügbar
Standard: Deaktiviert |
| Anwendungstags speichern | Klicken Sie dieses Kästchen an, um die Speicherung von Anwendungs-Tags zu aktivieren. Durch das Speichern von Anwendungs-Tags können Sie die APIs und MVC-Routen (Model-View-Controller) bestimmen, die Anfragen stellen, und die Daten gruppieren, um sie mit Messwerten zu vergleichen. Bei dieser Option müssen Sie Abfragen mit einer bestimmten Gruppe von Tags mithilfe der Open-Source-Bibliothek für die objektrelationale Zuordnung (ORM) der sqlcommenter-Funktion kommentieren. Diese Informationen helfen Query Insights, die Ursache eines Problems und den MVC zu ermitteln, von dem das Problem stammt. Anwendungspfade unterstützen Sie beim Anwendungsmonitoring. | Verfügbar
Standard: Deaktiviert |
Verfügbar
Standard: Deaktiviert |
| Abfragelänge anpassen |
Klicken Sie dieses Kästchen an, um die maximale Länge eines Abfragestrings anzupassen.
Höhere Abfragelängen sind hilfreich für analytische Abfragen, erfordern aber auch mehr Arbeitsspeicher.
Alle Abfragestrings, die das angegebene Limit überschreiten, werden in der Anzeige abgeschnitten. Wenn Sie das Limit für die Abfragelänge ändern, müssen Sie die Instanz neu starten. Sie können weiterhin Tags zu Abfragen hinzufügen, die die Längenbegrenzung überschreiten. Auf Cloud SQL Enterprise-Instanzen müssen Sie das Datenbank-Flag max_digest_length auf mindestens denselben Wert (bis zu 4500 Byte) festlegen, um Abfragen mit einer Länge von mehr als 1024 Byte zu erfassen.
Auf Cloud SQL Enterprise Plus-Instanzen verwaltet Cloud SQL max_digest_length automatisch (bis zu 1 MB).
|
Sie können das Limit in Byte von 256 Byte bis 4500 Byte festlegen.
Standard: 1024.
|
Sie können ein Limit in Byte von 1 bis 1048576 angeben.
Standardwert: 1024 Byte (1 KB).
|
| Maximale Abtastrate festlegen |
Klicken Sie dieses Kästchen an, um die maximale Abtastrate festzulegen. Die Abtastrate ist die Anzahl der ausgeführten Abfrageplanstichproben, die pro Minute in allen Datenbanken der Instanz erfasst werden. Wenn Sie die Abtastrate erhöhen, erhalten Sie wahrscheinlich mehr Datenpunkte. Allerdings kann dies zu Leistungseinbußen führen.
Wenn Sie die Stichprobenerhebung deaktivieren möchten, setzen Sie den Wert auf 0.
|
Sie ändern diesen Wert in eine Zahl von 0 bis 20.
Standard: 5.
|
Sie können den Höchstwert auf 200 erhöhen, um mehr Datenpunkte bereitzustellen.
Standard: 5.
|
Query Insights für mehrere Instanzen aktivieren
-
Rufen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen auf.
- Klicken Sie in einer beliebigen Zeile auf das Dreipunkt-Menü .
- Wählen Sie Query Insights aktivieren aus.
- Klicken Sie im Dialogfeld auf das Kästchen Query Insights für mehrere Instanzen aktivieren.
- Klicken Sie auf Aktivieren.
- Wählen Sie im nachfolgenden Dialogfeld die Instanzen aus, für die Sie Query Insights aktivieren möchten.
- Klicken Sie auf Query Insights aktivieren.
gcloud
Um Query Insights für eine Cloud SQL-Instanz mithilfe von gcloud zu aktivieren, führen Sie gcloud sql instances patch mit dem Flag --insights-config-query-insights-enabled so aus, nachdem Sie INSTANCE_ID durch die ID der Instanz ersetzt haben.
Wenn Sie Query Insights für eine Cloud SQL Enterprise Plus-Instanz aktivieren, werden die Empfehlungen des Indexberaters automatisch aktiviert.
Wenn Sie Query Insights aktivieren, wird die MySQL-Leistungserfassung automatisch mit Standardwerten für Leistungserfassungstrigger aktiviert. Sie können die Leistungserfassung konfigurieren
gcloud sql instances patch INSTANCE_ID \ --insights-config-query-insights-enabled
Verwenden Sie außerdem eines oder mehrere der folgenden optionalen Flags:
--insights-config-record-client-addressSpeichert die Client-IP-Adressen, von denen Abfragen stammen, und gruppiert diese Daten, um Messwerte damit auszuführen. Abfragen stammen von mehr als einem Host. Anhand der Grafiken zu Abfragen von Client-IP-Adressen können Sie die Ursache eines Problems ermitteln.
--insights-config-record-application-tagsSpeichert 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. Dazu können Sie die Open-Source-Bibliothek für die objektrelationale Zuordnung (ORM) der sqlcommenter-Funktion verwenden. Diese Informationen helfen Query Insights, die Ursache eines Problems und den MVC zu ermitteln, von dem das Problem stammt. Anwendungspfade unterstützen Sie beim Anwendungsmonitoring.
--insights-config-query-string-lengthLegt die Standardbegrenzung für die Abfragelänge fest. Höhere Abfragelängen sind hilfreich für analytische Abfragen, erfordern aber auch mehr Arbeitsspeicher. Wenn Sie das Limit für die Abfragelänge ändern, müssen Sie die Instanz neu starten. Sie können weiterhin Tags zu Abfragen hinzufügen, die die Längenbegrenzung überschreiten.
Auf Cloud SQL Enterprise-Instanzen müssen Sie das Datenbank-Flagmax_digest_lengthauf mindestens denselben Wert (bis zu4500Byte) festlegen, um Abfragen mit einer Länge von mehr als1024Byte zu erfassen. Auf Cloud SQL Enterprise Plus-Instanzen verwaltet Cloud SQLmax_digest_lengthautomatisch (bis zu 1 MB). Für die Cloud SQL Enterprise-Version können Sie einen Wert in Byte von256bis4500angeben. Die Standardlänge der Abfrage beträgt1024Byte. Für die Cloud SQL Enterprise Plus-Version können Sie ein Limit in Byte von1bis1048576angeben. Der Standardwert ist1024Byte (1 KB).--insights-config-query-plans-per-minuteStandardmäßig werden in allen Datenbanken der Instanz maximal 5 ausgeführte Abfrageplanstichproben pro Minute erfasst. Wenn Sie die Abtastrate erhöhen, erhalten Sie wahrscheinlich mehr Datenpunkte. Allerdings kann dies zu Leistungseinbußen führen. Wenn Sie die Stichprobenerhebung deaktivieren möchten, setzen Sie diesen Wert auf
0. Bei der Cloud SQL Enterprise-Version können Sie den Wert von 0 bis 20 ändern. In der Cloud SQL Enterprise Plus-Version können Sie den Höchstwert auf bis zu 200 erhöhen, um mehr Datenpunkte bereitzustellen.
Ersetzen Sie Folgendes:
- INSIGHTS_CONFIG_QUERY_STRING_LENGTH: Die zu speichernde Länge des Abfragestrings in Byte.
- API_TIER_STRING: Die benutzerdefinierte Instanzkonfiguration, die für die Instanz verwendet werden soll.
- REGION: Die Region für die Instanz.
gcloud sql instances patch INSTANCE_ID \ --insights-config-query-insights-enabled \ --insights-config-query-string-length=INSIGHTS_CONFIG_QUERY_STRING_LENGTH \ --insights-config-query-plans-per-minute=QUERY_PLANS_PER_MINUTE \ --insights-config-record-application-tags \ --insights-config-record-client-address \ --tier=API_TIER_STRING \ --region=REGION
REST Version 1
Rufen Sie die Methode instances.patch mit den Einstellungen für insightsConfig auf, um Query Insights für eine Cloud SQL-Instanz mithilfe der REST API zu aktivieren.
Wenn Sie Query Insights für eine Cloud SQL Enterprise Plus-Instanz aktivieren, werden automatisch Empfehlungen des Indexberaters aktiviert.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Projekt-ID
- INSTANCE_ID: die Instanz-ID
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
JSON-Text anfordern:
{
"settings" : {
"insightsConfig" : {
"queryInsightsEnabled" : true,
"recordClientAddress" : true,
"recordApplicationTags" : true,
"queryStringLength" : 1024,
"queryPlansPerMinute" : 20,
}
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2025-03-28T22:43:40.009Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Terraform
Wenn Sie Terraform verwenden möchten, um Query Insights für eine Cloud SQL-Instanz zu aktivieren, legen Sie das Flag query_insights_enabled auf true fest.
Wenn Sie Query Insights für eine Cloud SQL Enterprise Plus-Instanz aktivieren, werden automatisch Empfehlungen des Indexberaters aktiviert.
Sie können auch eines oder mehrere der folgenden optionalen Flags verwenden:
query_string_length: Für die Cloud SQL Enterprise-Version können Sie einen Wert in Byte von256bis4500angeben. Die Standardlänge der Abfrage beträgt1024Byte. Für die Cloud SQL Enterprise Plus-Version können Sie ein Limit in Byte von1bis1048576angeben. Der Standardwert ist1024Byte (1 KB).
Auf Cloud SQL Enterprise-Instanzen müssen Sie das Datenbank-Flagmax_digest_lengthauf mindestens denselben Wert (bis zu4500Byte) festlegen, um Abfragen mit einer Länge von mehr als1024Byte zu erfassen. Auf Cloud SQL Enterprise Plus-Instanzen verwaltet Cloud SQLmax_digest_lengthautomatisch (bis zu 1 MB).record_application_tags: Setzen Sie den Wert auftrue, wenn Sie Anwendungs-Tags aus der Abfrage aufzeichnen möchten.record_client_address: Setzen Sie den Wert auftrue, wenn Sie die Client-IP-Adresse erfassen möchten. Der Standardwert istfalse.-
query_plans_per_minute: Für die Cloud SQL Enterprise-Version können Sie den Wert von0auf20festlegen. Der Standardwert ist5. In der Cloud SQL Enterprise Plus-Version können Sie den Höchstwert auf bis zu200erhöhen, um mehr Datenpunkte bereitzustellen.
Beispiel:
resource "google_sql_database_instance" "INSTANCE_NAME" { name = "INSTANCE_NAME" database_version = "MYSQL_VERSION" region = "REGION" root_password = "PASSWORD" deletion_protection = false # set to true to prevent destruction of the resource settings { tier = "DB_TIER" insights_config { query_insights_enabled = true query_string_length = 2048 # Optional record_application_tags = true # Optional record_client_address = true # Optional query_plans_per_minute = 10 # Optional } } }
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud -Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Standardprojekt von Google Cloud fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.
Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.
Verzeichnis vorbereiten
Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).
-
Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung
.tfhaben, z. B.main.tf. In dieser Anleitung wird die Datei alsmain.tfbezeichnet.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.
Kopieren Sie den Beispielcode in das neu erstellte
main.tf.Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.
- Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
- Speichern Sie die Änderungen.
-
Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
terraform init
Fügen Sie optional die Option
-upgradeein, um die neueste Google-Anbieterversion zu verwenden:terraform init -upgrade
Änderungen anwenden
-
Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
terraform plan
Korrigieren Sie die Konfiguration nach Bedarf.
-
Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yesan der Eingabeaufforderung ein:terraform apply
Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.
- Öffnen Sie Ihr Google Cloud -Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.
Messwerte sollten innerhalb von Minuten nach Abschluss der Abfrage in Query Insights verfügbar sein. Sehen Sie sich die Datenaufbewahrungsrichtlinie für Cloud Monitoring an.
Query Insights-Traces werden in Cloud Trace gespeichert. Sehen Sie sich die Cloud Trace-Datenaufbewahrungsrichtlinie an.
Query Insights-Dashboard ansehen
Im Query Insights-Dashboard wird die Abfragelast basierend auf von Ihnen ausgewählten Faktoren angezeigt. Die Abfragelast ist ein Maß für die Gesamtarbeit aller Abfragen in der Instanz im ausgewählten Zeitraum. Das Dashboard bietet eine Reihe von Filtern, mit denen Sie die Abfragelast anzeigen können.
So öffnen Sie das Query Insights-Dashboard:
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie im Cloud SQL-Navigationsmenü auf Query Insights oder auf der Seite Instanzübersicht auf Zu „Query Insights“ für ausführliche Informationen über Abfragen und zur Leistung.
Das Dashboard Query Insights wird geöffnet. Je nachdem, ob Sie Query Insights für die Cloud SQL Enterprise-Version oder Query Insights für die Cloud SQL Enterprise Plus-Version verwenden, werden im Query Insights-Dashboard die folgenden Informationen zu Ihrer Instanz angezeigt:
Cloud SQL Enterprise Plus-Version
- Alle Abfragen: Zeigt die Datenbanklast für alle Abfragen im ausgewählten Zeitraum an. Jede Abfrage ist individuell farblich gekennzeichnet. Wenn Sie einen Zeitpunkt für eine bestimmte Abfrage aufrufen möchten, halten Sie den Mauszeiger über das Diagramm für die Abfrage.
- Datenbanken: Filtert die Abfragelast für eine bestimmte Datenbank oder für alle Datenbanken.
- Nutzer: Filtert die Abfragelast aus einem bestimmten Nutzerkonto.
- Clientadresse: Filtert die Abfragelast von einer bestimmten IP-Adresse.
- Zeitraum: Filtert die Abfragelast nach Zeiträumen, z. B. 1 Stunde, 6 Stunden, 1 Tag, 7 Tage, 30 Tage oder einen benutzerdefinierten Bereich.
- Warteereignistypen: Filtert die Abfragelast nach CPU- und Sperrwarteereignistypen.
- Abfragen, Warteereignistypen, Datenbanken, Nutzer, Tags und Clientadressen: Sortieren Sie nach den wichtigsten Dimensionen, die am meisten zur Datenbanklast im Diagramm beitragen. Siehe Datenbanklast filtern.
Cloud SQL Enterprise-Version
- Datenbanken: Filtert die Abfragelast für eine bestimmte Datenbank oder für alle Datenbanken.
- Nutzer: Filtert die Abfragelast aus einem bestimmten Nutzerkonto.
- Clientadresse: Filtert die Abfragelast von einer bestimmten IP-Adresse.
- Zeitraum: Filtert die Abfragelast nach Zeiträumen, z. B. 1 Stunde, 6 Stunden, 1 Tag, 7 Tage, 30 Tage oder einen benutzerdefinierten Bereich.
- Diagramm zur Datenbanklast: Zeigt das Abfrageladediagramm basierend auf den gefilterten Daten an.
- CPU-Kapazität, CPU- und CPU-Wartezeit, E/A-Wartezeit und Wartezeit für Sperrungen: Die Filter werden basierend auf den von Ihnen ausgewählten Optionen geladen. Weitere Informationen zu jedem dieser Filter finden Sie unter Datenbanklast für Top-Abfragen ansehen.
- Abfragen und Tags: Filtert die Abfragelast entweder nach einer ausgewählten Abfrage oder einem ausgewählten SQL-Abfrage-Tag. Siehe Datenbanklast filtern.
Datenbanklast für alle Abfragen ansehen
Die Anzahl der Datenbankabfragen ist eine Messung der 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 wird entweder CPU-Ressourcen, E/A-Ressourcen oder Sperren von CPU-Ressourcen verwendet oder darauf gewartet. Die Datenbankabfragelast ist das Verhältnis der Zeit, die von allen innerhalb eines bestimmten Zeitfensters abgeschlossenen Abfragen benötigt wird, zur tatsächlich verstrichenen Zeit.
Das Dashboard „Query Insights“ der obersten Ebene zeigt das Diagramm Datenbanklast – alle Top-Abfragen. Mit Drop-down-Menüs im Dashboard können Sie das Diagramm für eine bestimmte Datenbank, einen bestimmten Nutzer oder eine bestimmte Kundenadresse filtern.
Cloud SQL Enterprise Plus-Version
Cloud SQL Enterprise-Version
Die farbigen Linien in der Grafik zeigen die Abfragelast, in Kategorien unterteilt:
- CPU-Kapazität: Die Anzahl der CPUs, die auf der Instanz verfügbar sind.
- CPU und CPU-Wartezeit: Verhältnis der Zeit, die Abfragen in einem aktiven Zustand benötigen, zur tatsächlich verstrichenen Zeit. IO- und Sperrwartet blockieren keine Abfragen, die aktiv sind. Dieser Messwert kann bedeuten, dass die Abfrage entweder die CPU verwendet oder wartet, bis der Linux-Planer den Serverprozess plant, der die Abfrage ausführt, während andere Prozesse die CPU verwenden.
- E/A-Wartezeit: Das Verhältnis der Zeit, die Abfragen auf E/A warten, zur tatsächlich verstrichenen Zeit. IO Wait beinhaltet Read IO Wait und Write IO Wait. Eine Gliederung der Informationen zu IO Waits nach Sperrung können Sie in Cloud Monitoring anzeigen. Weitere Informationen finden Sie unter Cloud SQL-Messwerte.
- Lock Wait: Das Verhältnis der Zeit, die Abfragen auf Sperren warten, zur tatsächlich verstrichenen Zeit. Dies beinhaltet Wartezeiten nach Sperrung, LwLock-Wartezeiten und BufferPin-Wartezeiten nach Sperrung. Verwenden Sie Cloud Monitoring, um eine Aufschlüsselung der Informationen für Sperrungswartezeiten anzuzeigen. Weitere Informationen finden Sie unter Cloud SQL-Messwerte.
Die farbigen Linien in der Grafik zeigen die Datenbanklast nach Ausführungszeit. Sehen Sie sich die Grafik an und verwenden Sie die Filteroptionen, um diese Fragen zu untersuchen:
- Ist die Abfragelast hoch? Ist eine Spitze oder ein Anstieg im Zeitverlauf zu sehen? Wenn keine hohe Last angezeigt wird, liegt das Problem nicht bei Ihrer Abfrage.
- Wie lange war die Last hoch? Ist sie erst jetzt hoch oder war sie schon lange hoch? Verwenden Sie die Bereichsauswahl, um verschiedene Zeiträume auszuwählen, um herauszufinden, wie lange das Problem besteht. Vergrößern Sie die Ansicht, um ein Zeitfenster zu sehen, in dem Spitzen bei der Abfragelast beobachtet werden. Zoomen Sie heraus, um bis zu einer Woche der Zeitachse anzuzeigen.
- Wodurch wird die hohe Last verursacht? Sie können Optionen auswählen, um die CPU-Kapazität, die CPU- und CPU-Wartezeit, die Wartezeit der Sperrung oder die E/A-Wartezeit zu prüfen. Das Diagramm für jede dieser Optionen hat eine andere Farbe, sodass Sie leicht die Farbe mit der höchsten Last erkennen können. Die dunkelblaue Linie im Diagramm zeigt die maximale CPU-Kapazität des Systems an. Sie können die Abfragelast mit der maximalen CPU-Systemkapazität vergleichen. Anhand dieses Vergleichs können Sie erkennen, ob die CPU-Ressourcen einer Instanz erschöpft sind.
- Welche Datenbank hat die Auslastung? Wählen Sie im Drop-down-Menü „Datenbanken“ verschiedene Datenbanken aus, um die Datenbanken mit den höchsten Lasten zu finden.
- Verursachen bestimmte Nutzer oder IP-Adressen eine höhere Last? Wählen Sie in den Drop-down-Menüs verschiedene Nutzer und Adressen aus, um zu identifizieren, welche die höchste Last verursachen.
Datenbanklast filtern
Sie können die Datenbanklast nach Abfragen oder Tags filtern. Wenn Sie Query Insights für die Cloud SQL Enterprise Plus-Version verwenden, können Sie das Diagramm zur Datenbanklast anpassen, um die angezeigten Daten nach einer der folgenden Dimensionen aufzuschlüsseln:Alle Abfragen
Warteereignistypen
Datenbanken
Nutzer
Tags
Clientadressen
Wenn Sie das Diagramm zur Datenbanklast anpassen möchten, wählen Sie im Drop-down-Menü Datenbanklast nach Ausführungszeit eine Dimension aus.
Top-Beitragende zur Datenbanklast ansehen
In der Tabelle Top-Dimensionen nach Datenbanklast können Sie die Top-Beitragenden zur Datenbanklast aufrufen. In der Tabelle Top-Dimensionen nach Datenbanklast werden die wichtigsten Mitwirkenden für den Zeitraum und die Dimension angezeigt, die Sie im Drop-down-Menü des Diagramms Datenbanklast nach Ausführungszeit auswählen. Sie können den Zeitraum oder die Dimension ändern, um die Top-Beitragenden für eine andere Dimension oder einen anderen Zeitraum anzusehen.
In der Tabelle Top-Dimensionen nach Datenlast können Sie die folgenden Tabs auswählen.
| Tabulatortaste | 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:
|
| Warteereignistypen | In der Tabelle wird die Liste der wichtigsten Warteereignistypen angezeigt, die im ausgewählten Zeitraum aufgetreten sind. Diese Tabelle ist nur für Query Insights für die Cloud SQL Enterprise Plus-Version verfügbar.
|
| Datenbanken | In der Tabelle finden Sie eine Liste der Top-Datenbanken, die im ausgewählten Zeitraum über alle ausgeführten Abfragen hinweg zur Last beigetragen haben.
|
| Nutzer | Die Tabelle enthält die Liste der Top-Nutzer für den ausgewählten Zeitraum für alle ausgeführten Abfragen.
|
| Tags | Informationen zu Tags finden Sie unter Nach Abfrage-Tags filtern. |
| Clientadressen | Die Tabelle enthält die Liste der Top-Nutzer für den ausgewählten Zeitraum für alle ausgeführten Abfragen.
|
Nach Abfragen filtern
Die Tabelle Top-Dimensionen nach Datenbanklast bietet einen Überblick über die Abfragen, die die meisten Abfragelasten verursachen. Die Tabelle enthält alle normalisierten Abfragen für den Zeitraum und die Optionen, die im Query Insights-Dashboard ausgewählt wurden. Es sortiert Abfragen nach der gesamten Ausführungszeit während des ausgewählten Zeitraums.
Cloud SQL Enterprise Plus-Version
Wählen Sie zum Sortieren der Tabelle eine Spaltenüberschrift aus.
Cloud SQL Enterprise-Version
Wählen Sie zum Sortieren der Tabelle eine Spaltenüberschrift oder ein Attribut aus Abfragen filtern aus.
Die Tabelle enthält die folgenden Attribute:
- Abfrage: Der normalisierte Abfragestring. Standardmäßig zeigt Query Insights nur 1.024 Zeichen im Abfragestring an.
Abfragen mit dem Label
UTILITY COMMANDenthalten in der Regel die BefehleBEGIN,COMMITundEXPLAINoder Wrapper-Befehle. - Datenbank: Die Datenbank, für die die Abfrage ausgeführt wurde.
- Empfehlungen: Die vorgeschlagenen Empfehlungen, z. B. Indexe erstellen, um die Abfrageleistung zu verbessern.
- Last nach Gesamtzeit/Last nach CPU/Last nach E/A-Wartezeit/Last nach Wartezeit der Sperrung: Die Optionen, mit denen Sie bestimmte Abfragen filtern können, um die größte Last zu ermitteln.
- % der Last nach Abfragen: Der Prozentsatz der Last nach einzelner Abfrage.
- Latenz analysieren: Wenn Sie die KI-gestützte Fehlerbehebung (Vorschau) für diese Instanz aktiviert haben, können Sie auf diesen Link klicken, um Fehler bei langsamen Abfragen zu beheben.
- Durchschnittliche Ausführungszeit (ms): Die durchschnittliche Zeit für die Ausführung der Abfrage.
- Aufrufe: Gibt an, wie oft die Anwendung die Abfrage aufgerufen hat.
- Durchschnittliche zurückgegebene Zeilen: Die durchschnittliche Anzahl der Zeilen, die für die Abfrage zurückgegeben wurden.
- Durchschnittlich gescannte Zeilen: Die durchschnittliche Anzahl der Zeilen, die für die Abfrage gescannt wurden.
In Query Insights werden nur normalisierte Abfragen gespeichert und angezeigt.
Standardmäßig erfasst Query Insights keine IP-Adressen oder Tag-Informationen. Sie können Query Insights aktivieren, um diese Informationen zu erfassen, und bei Bedarf die Erfassung deaktivieren.
Traces des Abfrageplans erfassen oder speichern keine konstanten Werte und entfernen keine personenidentifizierbaren Informationen, die die Konstante anzeigen kann.
Query Insights zeigt normalisierte Abfragen an – ? ersetzt also den Wert der Literalkonstante. Im folgenden Beispiel wird die Namenskonstante entfernt und durch ? ersetzt.
UPDATE "demo_customer" SET "customer_id" = ?::uuid, "name" = ?, "address" = ?, "rating" = ?, "balance" = ?, "current_city" = ?, "current_location" = ? WHERE "demo_customer"."id" = ?
Nach Abfrage-Tags filtern
Zur Behebung von Fehlern in Anwendungen müssen Sie zuerst Tags zu SQL-Abfragen hinzufügen. Abfragelasttags ermöglichen eine Aufschlüsselung der Abfragelast des ausgewählten Tags im Zeitverlauf.
Query Insights bietet anwendungsorientiertes Monitoring zur Diagnose von Leistungsproblemen für Anwendungen, die mit ORMs erstellt wurden. Wenn Sie für das gesamte Anwendungspaket verantwortlich sind, können Sie mit Query Insights Abfragen in einer Anwendungsansicht verfolgen. Mit der Tag-Kennzeichnung von Abfragen können Sie Probleme auf übergeordneten Konstrukten finden, z. B. mit der Geschäftslogik oder einem Mikrodienst.
Sie können Abfragen nach der Geschäftslogik taggen, z. B. mithilfe der Tags für Zahlungen, Inventar, Geschäftsanalysen oder Versand. Anschließend können Sie die Abfragelast ermitteln, die die verschiedenen Geschäftslogik erstellt haben. Dabei kann es sich beispielsweise um unerwartete Ereignisse wie Spitzen bei den Geschäftsanalyse-Tags um 13:00 Uhr oder unerwartetes Wachstum bei einem Trend zur Zahlungsdienst in der letzten Woche handeln.
Zur Berechnung der Datenbanklast für Tag verwendet Query Insights die Zeit, die jede Abfrage mit dem von Ihnen ausgewählten Tag benötigt. Das Tool berechnet die Abschlusszeit an der Minutengrenze anhand der tatsächlich verstrichenen Zeit.
Wählen Sie im Dashboard „Query Insights“ die Option Tags aus, um die Tag-Tabelle anzuzeigen. Die Tabelle sortiert Tags nach der Gesamtlast nach der Gesamtzeit.
Sie können die Tabelle sortieren. Wählen Sie dazu unter Tags filtern ein Attribut aus oder klicken Sie auf eine Spaltenüberschrift. Die Tabelle enthält die folgenden Attribute:
- Action, Controller, Framework, Route, Application, DB Driver: Jedes Attribut, das Sie Ihren Abfragen hinzugefügt haben, wird als Spalte angezeigt. Sie müssen mindestens eine dieser Eigenschaften hinzufügen, wenn Sie nach Tags filtern möchten.
- Last nach Gesamtzeit/Last nach CPU/Last nach E/A-Wartezeit/Last nach Wartezeit der Sperrung: Optionen zum Filtern bestimmter Abfragen, um die größte Last für jede Option zu finden.
- Durchschnittliche Ausführungszeit (ms): Die durchschnittliche Zeit für die Ausführung der Abfrage.
- Durchschnittliche zurückgegebene Zeilen: Die durchschnittliche Anzahl der Zeilen, die für die Abfrage zurückgegeben wurden.
- Durchschnittlich gescannte Zeilen: Die durchschnittliche Anzahl der Zeilen, die für die Abfrage gescannt wurden.
- Aufrufe: Gibt an, wie oft die Anwendung die Abfrage aufgerufen hat.
- Datenbank: Die Datenbank, für die die Abfrage ausgeführt wurde.
Abfragedetails für eine bestimmte Abfrage oder ein bestimmtes Tag aufrufen
Führen Sie auf dem Tab Abfragen oder Tags Folgendes aus, um festzustellen, ob eine bestimmte Abfrage oder ein bestimmtes Tag die Ursache für das Problem ist:
- Wenn Sie die Liste in absteigender Reihenfolge sortieren möchten, klicken Sie auf den Header Last nach Gesamtzeit.
- Klicken Sie auf die Abfrage oder den Tag am Anfang der Liste. Sie hat die höchste Last und benötigt mehr Zeit als die anderen.
Die Seite Abfragedetails wird geöffnet und zeigt die Details der ausgewählten Abfrage bzw. des ausgewählten Tags an.
Bestimmte Abfragelast prüfen
Die Seite Abfragedetails für eine ausgewählte Abfrage sieht so aus:
Das Diagramm Datenbanklast – bestimmte Abfrage zeigt eine Messung der Arbeit (in CPU-Sekunden) an, die Ihre normalisierte Abfrage im Zeitverlauf in der ausgewählten Abfrage ausgeführt hat. Zur Berechnung der Last wird die von normalisierten Abfragen benötigte Zeit zur tatsächlich verstrichenen Zeit verwenden. Am Anfang der Tabelle werden die ersten 1.024 Zeichen der normalisierten Abfrage angezeigt. Literale werden dabei wegen Aggregation und personenidentifizierbaren Informationen entfernt.
Wie beim Diagramm zur Gesamtzeit der Abfragen können Sie die Last für eine bestimmte Abfrage nach Datenbank, Nutzer und Clientadresse filtern. Die Abfragelast wird in CPU-Kapazität, CPU und CPU-Wartezeit, E/A-Wartezeit und Wartezeit nach Sperrung aufgeteilt.
Bestimmte getaggte Abfragelast prüfen
Das Dashboard für ein ausgewähltes Tag wird wie unten dargestellt angezeigt. Beispiel: Wenn alle Abfragen aus einer Zahlung für Mikrodienste mit dem Tag payment gekennzeichnet sind, können Sie mit dem Tag payment den Umfang der Abfragelast anzeigen lassen, die im Trend liegt.
Das Diagramm Datenbanklast – bestimmte Tags zeigt eine Messung der Arbeit (in CPU-Sekunden) an, die Abfragen, die mit Ihren ausgewählten Tags übereinstimmen, in der ausgewählten Datenbank im Laufe der Zeit ausgeführt haben. Wie beim Diagramm zur Gesamtzeit der Abfragen können Sie die Last für eine bestimmte Abfrage nach Datenbank, Nutzer und Clientadresse filtern.
Vorgänge in einem Beispielabfrageplan prüfen
Ein Abfrageplan nimmt eine Stichprobe Ihrer Abfrage und unterteilt sie in einzelne Vorgänge. Die einzelnen Vorgänge in der Abfrage werden erläutert.
MySQL 5.7 bietet einen geschätzten Abfrageplan mit der EXPLAIN-Ansicht, während MySQL 8.0 und höhere Versionen einen ausgeführten Abfrageplan mit der EXPLAIN ANALYZE-Ansicht bereitstellen. Ein geschätzter Abfrageplan liefert die geschätzte Ausführungszeit einer Abfrage, während ein ausgeführter Abfrageplan Echtzeitinformationen zu jedem Ausführungsschritt der jeweiligen Abfrage bereitstellt.
Abfragepläne in MySQL 5.7 werden für die folgenden Abfragen unterstützt, die von der EXPLAIN-Anweisung unterstützt werden:
- Für einzelne Tabellen: INSERT, SELECT, UPDATE und DELETE.
- Für mehrere Tabellen: SELECT, UPDATE und DELETE.
Sie können Abfragepläne in MySQL 8.0 und höher für alle von EXPLAIN ANALYZE unterstützten Abfragen generieren. Dieses Tool zeigt Ihnen, wo MySQL Zeit für Ihre SELECT-Abfragen für einzelne Tabellen und mehrere Tabellen aufwendet. Cloud SQL unterstützt nicht die Generierung von DML-Abfrageplänen (Datenbearbeitungssprache) für mehrere Tabellen, da diese Abfragen von EXPLAIN ANALYZE nicht unterstützt werden.
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.
Das Diagramm Abfrageplanbeispiele zeigt alle Abfragepläne, die zu bestimmten Zeiten ausgeführt werden, sowie die Zeit, die jeder Plan benötigt hat. Sie können die Rate ändern, mit der die Stichproben von Abfrageplänen pro Minute erfasst werden. Siehe Query Insights aktivieren.
Standardmäßig zeigt das Feld rechts die Details für den Beispiel-Abfrageplan an, der die längste Zeit in Anspruch nimmt, wie im Diagramm Abfrageplan-Beispiele angezeigt. Klicken Sie auf den entsprechenden Kreis im Diagramm, um die Details für einen anderen Beispielabfrageplan anzuzeigen. Erweiterte Details zeigen ein Modell aller Vorgänge im Abfrageplan.
Jeder Vorgang zeigt die Latenz, die zurückgegebenen Zeilen und die Kosten für diesen Vorgang an. Wenn Sie einen Vorgang auswählen, werden weitere Details wie freigegebene Trefferblöcke, Schematyp, Schleifen und Planzeilen angezeigt.
Versuchen Sie, das Problem anhand der folgenden Fragen einzugrenzen:
- Wie hoch ist der Ressourcenverbrauch?
- Wie hängt er mit anderen Abfragen zusammen?
- Ändert sich der Verbrauch im Laufe der Zeit?
Von einer Beispielabfrage generierten Trace prüfen
Zusätzlich zum Beispielabfrageplan können Sie mit Query Insights einen kontextbezogenen End-to-End-Anwendungs-Trace für eine Beispielabfrage aufrufen. Mit diesem Trace können Sie die Quelle einer problematischen Abfrage ermitteln, indem Sie die Datenbankaktivität für eine bestimmte Anfrage anzeigen lassen. Außerdem werden Logeinträge, die die Anwendung während der Anfrage an Cloud Logging sendet, mit dem Trace verknüpft, was Ihnen bei der Untersuchung hilft.
So rufen Sie den kontextbezogenen Trace auf:
- Klicken Sie im Bildschirm Beispielabfrage auf den Tab End-to-End-Trace. Auf diesem Tab wird ein Gantt-Diagramm mit den Spans angezeigt, die Datensätze einzelner Vorgänge für den von der Abfrage generierten Trace sind.
- Wenn Sie weitere Details zu einem Span aufrufen möchten, z. B. Attribute und Metadaten, wählen Sie den Span aus.
Sie können sich den Trace auch auf der Seite Trace Explorer ansehen. Klicken Sie dazu auf In Cloud Trace ansehen. Weitere Informationen zur Verwendung der Seite Trace-Explorer zum Untersuchen Ihrer Trace-Daten finden Sie unter Traces suchen und untersuchen.
Latenz prüfen
Latenz ist die tatsächlich verstrichene Zeit, die für den Abschluss der normalisierten Abfrage benötigt wird. Mit dem Diagramm Latenz können Sie die Latenz der Abfrage oder des Tags untersuchen. Im Latenz-Dashboard werden die Latenzen für das 50., 95. und 99. Perzentil angezeigt, um Ausreißerverhalten zu ermitteln.
Das folgende Bild zeigt das Diagramm für die Datenbanklast im 50. Perzentil für eine bestimmte Abfrage mit ausgewählten Filtern für CPU-Kapazität, CPU und CPU-Wartezeit sowie E/A-Wartezeit und Wartezeit nach Sperrung an.
Die Latenz der parallelen Abfragen wird in der tatsächlich verstrichenen Zeit gemessen, obwohl die Abfragelast für die Abfrage höher sein kann, da mehrere Kerne zum Ausführen bestimmter Teile der Abfrage verwendet werden.
Versuchen Sie, das Problem anhand der folgenden Fragen einzugrenzen:
- Wodurch wird die hohe Last verursacht? Wählen Sie Optionen aus, um die CPU-Kapazität, die CPU und CPU-Wartezeit sowie die E/A-Wartezeit und Wartezeit nach Sperrung zu sehen.
- Wie lange war die Last hoch? Ist sie nur jetzt hoch? Oder ist sie schon lange hoch? Ändern Sie den Zeitraum, um das Datum und die Uhrzeit zu ermitteln, zu der sich die Leistung der Last verschlechterte.
- Gibt es Latenzspitzen? Ändern Sie das Zeitfenster, um die bisherige Latenz für die normalisierte Abfrage zu untersuchen.
Tags zu SQL-Abfragen hinzufügen
Das Taggen von SQL-Abfragen vereinfacht die Fehlerbehebung in Anwendungen. Sie können sqlcommenter verwenden, um Ihren SQL-Abfragen Tags entweder automatisch oder manuell hinzuzufügen.
sqlcommenter mit ORM verwenden
Wenn Sie ORM verwenden, anstatt SQL-Abfragen direkt zu schreiben, finden Sie möglicherweise keinen Anwendungscode, der Leistungsprobleme verursacht. Unter Umständen können Sie auch nicht analysieren, wie sich Ihr Anwendungscode auf die Abfrageleistung auswirkt. Query Insights bietet eine Open-Source-Bibliothek namens sqlcommenter, um dieses Problem zu beheben. Diese Bibliothek ist für Entwickler und Administratoren nützlich, die ORM-Tools verwenden, um zu erkennen, welcher Anwendungscode Leistungsprobleme verursacht.
Wenn Sie ORM und sqlcommenter zusammen verwenden, werden die Tags automatisch erstellt. Sie müssen in der Anwendung weder Code hinzufügen noch ändern.
Sie können sqlcommenter auf dem Anwendungsserver installieren. Die Instrumentierungsbibliothek ermöglicht die Weitergabe von Anwendungsinformationen in Verbindung mit Ihrem Modell, Ihrer Ansicht und Ihrem MVC-Framework zusammen mit den Abfragen als SQL-Kommentar. Die Datenbank ruft diese Tags ab und beginnt die Aufzeichnung und Aggregation von Statistiken nach Tags. Dies sind orthogonale Statistiken mit normalisierten Abfragen. Query Insights zeigt die Tags an, damit Sie wissen, welche Anwendung die Abfragelast verursacht, und den Anwendungscode finden können, der die Leistungsprobleme verursacht.
Ergebnisse in SQL-Datenbanklogs werden so angezeigt:
SELECT * from USERS /action='run+this', controller='foo%3', traceparent='00-01', tracestate='rojo%2'/
Zu den unterstützten Tags gehören der Controllername, die Route, das Framework und die Aktion.
Die Gruppe von ORM-Tools in sqlcommenter wird für die folgenden Programmiersprachen unterstützt:
| Python |
|
| Java |
|
| Ruby |
|
| Node.js |
|
| PHP |
|
| Go |
|
Weitere Informationen über sqlcommenter und wie Sie es in Ihrem ORM-Framework verwenden, finden Sie in der sqlcommenter-Dokumentation.
Tags mit sqlcommenter hinzufügen
Wenn Sie ORM nicht verwenden, müssen Sie sqlcommenter-Tags oder Kommentare manuell im richtigen SQL-Kommentarformat zu Ihrer SQL-Abfrage hinzufügen. Außerdem müssen Sie jede SQL-Anweisung mit einem Kommentar erweitern, der ein serialisiertes Schlüssel/Wert-Paar enthält. Verwenden Sie mindestens einen der folgenden Schlüssel:
action=''controller=''framework=''route=''application=''db driver=''
Query Insights löst alle anderen Schlüssel ab.
Query Insights deaktivieren
Console
So deaktivieren Sie Query Insights für eine Cloud SQL-Instanz mithilfe der Google Cloud Console:
-
Rufen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen auf.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie in der Kachel Konfiguration auf Konfiguration bearbeiten.
- Erweitern Sie im Abschnitt Konfigurationsoptionen die Option Query Insights.
- Entfernen Sie das Häkchen aus dem Kästchen Query Insights aktivieren.
- Klicken Sie auf Speichern.
gcloud
Um Query Insights für eine Cloud SQL-Instanz mithilfe von gcloud zu deaktivieren, führen Sie gcloud sql instances patch mit dem Flag --no-insights-config-query-insights-enabled so aus, nachdem Sie INSTANCE_ID durch die ID der Instanz ersetzt haben.
gcloud sql instances patch INSTANCE_ID \ --no-insights-config-query-insights-enabled
REST
Rufen Sie die Methode instances.patch auf, wobei queryInsightsEnabled so auf false gesetzt ist, um Query Insights für eine Cloud SQL-Instanz mithilfe der REST API zu deaktivieren.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: die Projekt-ID
- instance-id: Die Instanz-ID.
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
JSON-Text anfordern:
{
"settings" : { "insightsConfig" : { "queryInsightsEnabled" : false } }
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2021-01-28T22:43:40.009Z",
"operationType": "UPDATE",
"name": "operation-id",
"targetId": "instance-id",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
"targetProject": "project-id"
}
Query Insights für die Cloud SQL Enterprise Plus-Version deaktivieren
So deaktivieren Sie Query Insights für die Cloud SQL Enterprise Plus-Version:
-
Rufen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen auf.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie auf Bearbeiten.
- Maximieren Sie im Bereich Instanz anpassen den Eintrag Query Insights.
- Entfernen Sie das Häkchen aus dem Kästchen Enterprise Plus-Funktionen aktivieren.
- Klicken Sie auf Speichern.
Nächste Schritte
- Blog zur Einführung: Datenbankengpässe schneller beheben mit den neuesten Query Insights für die Cloud SQL Enterprise Plus-Version
- Siehe Google Cloud -Messwerte.
- Blog: Mit Cloud SQL Insights die Fähigkeiten zur Fehlerbehebung bei Abfragen verbessern
- Video: Einführung in Cloud SQL Insights
- Podcast: Cloud SQL Insights
- Informationen zu Codelabs
- Hohe CPU-Auslastung optimieren
- Hohe Speichernutzung optimieren
- Blog: Einführung von Sqlcommenter: Eine Open-Source-Bibliothek mit ORM-Instrumentierung
- Blog: Abfrage-Tagging mit Sqlcommenter aktivieren