Tutorial: Query Performance Insight für Azure Database for MySQL – Flexible Server

GILT FÜR: Azure Database for MySQL – Flexible Server

Query Performance Insight ermöglicht eine intelligente Abfrageanalyse für Datenbanken. Zu den bevorzugten Erkenntnissen zählen die Workloadmuster und zeitintensiveren Abfragen. Anhand dieser Erkenntnisse können Sie ermitteln, welche Abfragen optimiert werden müssen, um die Gesamtleistung zu verbessern und Ihre verfügbaren Ressourcen effizient zu nutzen.

Query Performance Insight soll den Zeitaufwand für die Problembehandlung der Datenbankleistung reduzieren. Dazu stellt das Tool u. a. folgende Informationen bereit:

  • Erste N zeitintensive Abfragen und ihr Trend
  • Abfragedetails: Zeigen Sie den Ausführungsverlauf mit minimaler, maximaler und durchschnittlicher Abfragedauer sowie die Standardabweichung der Abfragedauer an.
  • Ressourcenverwendung (CPU, Arbeitsspeicher und Speicher)

In diesem Artikel wird erläutert, wie Sie azure Database for MySQL flexible Server slow query logs, the Log Analytics tool, and workbooks templates to visualize Query Performance Insight for Azure Database for MySQL flexible server.

In diesem Tutorial lernen Sie Folgendes:

  • Konfigurieren der Protokolle für langsame Abfragen mithilfe des Azure-Portals oder der Azure CLI
  • Einrichten der Diagnose
  • Anzeigen der Protokolle für langsame Abfragen mithilfe von Log Analytics
  • Anzeigen der Protokolle für langsame Abfragen mithilfe Arbeitsmappen

Voraussetzungen

Konfigurieren von Protokollen für langsame Abfragen mithilfe des Azure-Portals

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie Ihre Azure-Datenbank für die flexible Serverinstanz von MySQL aus.

  3. Wählen Sie im Bereich auf der linken Seite unter Einstellungen die Option Serverparameter aus.

    Screenshot showing the 'Server parameters' list.

  4. Wählen Sie für den Parameter slow_query_log die Option ON aus.

    Screenshot showing the 'slow_query_log' parameter switched to 'ON'.

  5. Informationen zu den anderen Parametern (etwa long_query_time und log_slow_admin_statements) finden Sie in der Dokumentation zu Protokollen für langsame Abfragen.

    Screenshot showing updated values for the remaining slow query log-related parameters.

  6. Wählen Sie Speichern.

    Screenshot of the 'Save' button for saving changes in the parameter values.

Sie können zur Liste der Protokolle zurückkehren, indem Sie die Seite Serverparameter schließen.

Konfigurieren von Protokollen für langsame Abfragen mithilfe der Azure CLI

Alternativ können Sie langsame Abfrageprotokolle für Ihre flexible Azure-Datenbank für MySQL-Serverinstanz über die Azure CLI aktivieren und konfigurieren, indem Sie den folgenden Befehl ausführen:

Wichtig

Um sicherzustellen, dass die Leistung Ihrer flexiblen Serverinstanz in Ihrer Azure-Datenbank für MySQL nicht stark beeinträchtigt wird, empfehlen wir, nur die Ereignistypen und Benutzer zu protokollieren, die für Ihre Überwachungszwecke erforderlich sind.

  • Aktivieren Sie langsame Abfrageprotokolle.
az mysql flexible-server parameter set \
--name slow_query_log \
--resource-group myresourcegroup \
--server-name mydemoserver \
--value ON
  • Legen Sie long_query_time Zeit auf 10 Sekunden fest. Diese Einstellung protokolliert alle Abfragen, die länger als 10 Sekunden ausgeführt werden. Passen Sie diesen Schwellenwert basierend auf Ihrer Definition für langsame Abfragen an.
az mysql server configuration set \
--name long_query_time \
--resource-group myresourcegroup \
--server mydemoserver \
--value 10

Einrichten der Diagnose

Protokolle für langsame Abfragen sind in die Diagnoseeinstellungen von Azure Monitor integriert, sodass Sie Ihre Protokolle an eine von drei Datensenken weiterleiten können:

  • Einen Log Analytics-Arbeitsbereich.
  • Einen Event Hub
  • Ein Speicherkonto

Hinweis

Es wird empfohlen, die Datensenken zu erstellen, bevor Sie die Diagnoseeinstellungen konfigurieren. Sie können auf die Protokolle für langsame Abfragen in den von Ihnen konfigurierten Datensenken zugreifen. Es kann bis zu 10 Minuten dauern, bis die Protokolle angezeigt werden.

  1. Wählen Sie im linken Bereich unter Überwachung die Option Diagnoseeinstellungen aus.

  2. Wählen Sie im Bereich Diagnoseeinstellungen den Eintrag Diagnoseeinstellung hinzufügen aus.

    Screenshot of the 'Add diagnostic setting' link on the 'Diagnostic settings' pane.

  3. Geben Sie im Feld Name einen Name für die Diagnoseeinstellung ein.

  4. Geben Sie an, an welche Ziele (Log Analytics-Arbeitsbereich, Event Hub oder Speicherkonto) die Protokolle für langsame Abfragen gesendet werden sollen, indem Sie die entsprechenden Kontrollkästchen aktivieren.

    Hinweis

    In diesem Tutorial senden Sie die Protokolle für langsame Abfragen an einen Log Analytics-Arbeitsbereich.

  5. Aktivieren Sie unter Protokoll für den Protokolltyp das Kontrollkästchen MySqlSlowLogs.

    Screenshot of the 'Diagnostics settings' pane for selecting configuration options.

  6. Nachdem Sie die Datensenken für die langsamen Abfrageprotokolle konfiguriert haben, wählen Sie Speichern aus.

    Screenshot of Diagnostic settings configuration options, with Save highlighted.

Anzeigen von Abfrageerkenntnissen mithilfe von Log Analytics

  1. Wählen Sie in Log Analytics im linken Bereich unter Überwachung die Option Protokolle aus.

  2. Schließen Sie das geöffnete Fenster Abfragen.

    Screenshot of the Log Analytics 'Queries' pane.

  3. Im Abfragefenster können Sie die auszuführende Abfrage schreiben. Zum Ermitteln von Abfragen auf einem bestimmten Server, die länger als zehn Sekunden dauern, wurde der folgende Code verwendet:

    AzureDiagnostics
       | where Category == 'MySqlSlowLogs'
       | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s 
       | where query_time_d > 10
    
  4. Wählen Sie einen Wert für Zeitbereich aus, und führen Sie die Abfrage aus. Die Ergebnisse sind in der folgenden Abbildung dargestellt:

    Screenshot of a slow query log.

Anzeigen von Abfrageerkenntnissen mithilfe von Arbeitsmappen

  1. Wählen Sie im Azure-Portal im linken Bereich unter "Überwachung für Ihre Azure-Datenbank für MySQL flexible Serverinstanz" die Option "Arbeitsmappen" aus.

  2. Wählen Sie die Vorlage Query Performance Insight aus.

    Screenshot showing all workbooks in the workbook gallery.

In der Arbeitsmappe können Sie die folgenden Visualisierungen anzeigen:

  • Abfragelast
  • Aktive Verbindungen gesamt
  • Trend langsamer Abfragen (Abfragezeit >10 Sekunden)
  • Details zu langsamen Abfragen
  • 5 längste Abfragen auflisten
  • Zusammenfassen langsamer Abfragen nach minimaler, maximaler und durchschnittlicher Abfragezeit sowie der Abfragezeit mit Standardabweichung

Screenshot showing two long queries.

Hinweis

  • Zum Anzeigen der Ressourcenverwendung können Sie die Vorlage „Übersicht“ verwenden.
  • Sie können diese Vorlagen auch entsprechend Ihren Anforderungen bearbeiten und anpassen. Weitere Informationen finden Sie unter Azure-Arbeitsmappen.
  • Zur Schnellansicht können Sie die Arbeitsmappen oder die Log Analytics-Abfrage auch an Ihr Dashboard anheften. Weitere Informationen finden Sie unter Erstellen eines Dashboards im Azure-Portal.

In Query Performance Insight können Ihnen die folgenden zwei Metriken helfen, potenzielle Engpässe zu finden: Dauer und Anzahl von Ausführungen. Abfragen mit langer Ausführungsdauer besitzen das größte Potenzial, Ressourcen länger zu blockieren, andere Benutzer zu blockieren und die Skalierbarkeit einzuschränken.

In einigen Fällen kann eine hohe Anzahl von Ausführungen mehr Netzwerkroundtrips nach sich ziehen. Roundtrips beeinträchtigen die Leistung. Sie richten sich nach der Netzwerklatenz und der Serverlatenz bei Downstreams. Daher kann die Anzahl von Ausführungen helfen, häufig ausgeführte Abfragen zu ermitteln. Diese Abfragen sind auch die besten Kandidaten für eine Optimierung.

Nächste Schritte