Freigeben über


Tutorial: Query Performance Insight 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 Protokolle für langsame Abfragen in Azure Database for MySQL – Flexibler Server, das Log Analytics-Tool und Arbeitsmappenvorlagen verwenden, um Query Performance Insight für Azure Database for MySQL – Flexibler Server zu visualisieren.

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 Instanz von Azure Database for MySQL – Flexibler Server aus.

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

    Screenshot: Liste „Serverparameter“

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

    Screenshot: Auf „ON“ festgelegter Parameter „slow_query_log“

  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: Aktualisierte Werte für die übrigen Parameter im Zusammenhang mit Protokollen für langsame Abfragen

  6. Wählen Sie Speichern aus.

    Screenshot: Schaltfläche „Speichern“ zum Speichern der Änderungen in den Parameterwerten

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 Protokolle für langsame Abfragen für Ihre Instanz von Azure Database for MySQL – Flexibler Server über die Azure-Befehlszeilenschnittstelle durch Ausführen des folgenden Befehls aktivieren und konfigurieren:

Wichtig

Um die Leistung Ihrer Instanz von Azure Database for MySQL – Flexibler Server nicht zu stark zu beeinträchtigen, wird empfohlen, nur die Ereignistypen und Benutzenden zu protokollieren, die für Ihre Überwachungszwecke benötigt werden.

  • Aktivieren Sie Protokolle für langsamen Abfragen.
az mysql flexible-server parameter set \
--name slow_query_log \
--resource-group myresourcegroup \
--server-name mydemoserver \
--value ON
  • Legen Sie die Zeit für long_query_time auf 10 Sekunden fest. Diese Einstellung wird alle Abfragen protokollieren, die während mehr 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: Link „Diagnoseeinstellung hinzufügen“ im Bereich „Diagnoseeinstellungen“

  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: Bereich „Diagnoseeinstellungen“ zum Auswählen von Konfigurationsoptionen

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

    Screenshot der Konfigurationsoptionen für Diagnoseeinstellungen mit hervorgehobener Option „Speichern“.

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: Log Analytics-Bereich „Abfragen“

  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: Protokoll für langsame Abfrage

Anzeigen von Abfrageerkenntnissen mithilfe von Arbeitsmappen

  1. Wählen Sie im Azure-Portal im linken Bereich unter Überwachung für Ihre Azure Database for MySQL Flexible Server-Instanz die Option Arbeitsmappen aus.

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

    Screenshot: Alle Arbeitsmappen im Arbeitsmappenkatalog

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: Zwei lange Abfragen

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.