SQL-Performance mit Performancehub analysieren

Mit Performancehub können Sie die SQL-Performance überwachen und analysieren und einen besseren Einblick in Performanceprobleme erhalten.

Performancehub für HeatWave- und externe MySQL-DB-Systeme zeigt SQL-Anweisungsinformationen für den ausgewählten Zeitraum an. Mit Performancehub können Sie die Performance Ihrer Datenbankanwendungen verbessern, indem Sie die Abfrageperformance überwachen. Es ermöglicht Ihnen, SQL-Code genau zu lokalisieren, der die Ursache für eine Verlangsamung ist, und SQL-Code während der aktiven Entwicklung zu verbessern sowie Abfragen, die auf Produktionssystemen ausgeführt werden, kontinuierlich zu überwachen und zu optimieren.

Um zu Performancehub zu wechseln, klicken Sie auf der Seite MySQL-Datenbankdetails im Datenbankmanagement auf Performancehub. Weitere Informationen finden Sie unter Einzelnes HeatWave- oder externes MySQL-DB-System überwachen.

Hinweis

  • Bei einem DB-System mit aktiviertem Datenbankmanagement HeatWave können Sie auch über die Seite DB-Systemdetails im HeatWave-Service auf Performancehub zugreifen.
  • Bei HeatWave-DB-Systemen sind bestimmte Performancehubfeatures, wie Explain-Plan und Digestfehlerdetails, nur verfügbar, wenn die Option Vollständiges Monitoring beim Aktivieren des Datenbankmanagements ausgewählt ist.
  • Stellen Sie bei externen MySQL-DB-Systemen sicher, dass die erforderlichen Variablen und Tabellen im MySQL-Setup konfiguriert sind. Außerdem verfügen Sie über die erforderlichen Berechtigungen, um Aufgaben auszuführen, wie das Anzeigen von Ausführungsfehlerdetails und dem Explain-Plan. Weitere Informationen finden Sie unter Voraussetzungsaufgaben für externes DB-System MySQL ausführen.

Wählen Sie in Performancehub eine Option in der Dropdown-Liste Zuletzt gesehen aus, um die Dauer anzugeben, für die Sie die SQL-Aktivität überwachen und die zuletzt angezeigten SQL-Anweisungen anzeigen möchten. Wenn Sie die Option Benutzerdefiniert in der Dropdown-Liste Zuletzt gesehen auswählen, können Sie eine benutzerdefinierte Dauer innerhalb der letzten sieben Tage angeben. Im Feld Zeitbereich wird der Zeitraum je nach der ausgewählten Option Zuletzt gesehen angezeigt. Sie können auch auf das Feld Zeitbereich klicken, um eine benutzerdefinierte Dauer innerhalb der letzten Sieben-Tage-Periode anzugeben. Um die Daten im Performancehub zu aktualisieren, klicken Sie oben rechts auf Aktualisieren.

Basierend auf dem ausgewählten Zeitraum werden relevante Informationen in den folgenden Diagrammen und Abschnitten angezeigt:

  • Durchschnittliche Anweisungslatenz (Sekunden): Zeigt die durchschnittliche Latenz (in Sekunden) für die SQL-Anweisungen an, die für das DB-System ausgeführt werden.

    Klicken Sie in der oberen rechten Ecke auf Diagramme auswählen, und wählen Sie Anweisungsanzahl aus, um das Diagramm Anweisungsanzahl anzuzeigen. In diesem Diagramm wird die Gesamtanzahl der SQL-Anweisungen angezeigt, die im ausgewählten Zeitraum für das DB-System ausgeführt wurden. Bei einem HeatWave-DB-System wird im Diagramm Anweisungsanzahl auch die Anzahl der SQL-Anweisungen angezeigt, die zur Ausführung in HeatWave ausgelagert wurden.

  • Top 100 nach <Indikator>: Zeigt die aggregierten Übersichtsinformationen für die Top-SQL-Anweisungen basierend auf einem ausgewählten Indikator an, wie durchschnittliche Anweisungslatenz, Gesamtanzahl der Ausführungen oder Ausführungsstatus. Im Abschnitt Top 100 nach <Indikator> können Sie einen Indikator auswählen, um SQL-Anweisungen nach dieser Leistungskennzahl zu sortieren und zu überwachen. So können Sie aufwendige Anweisungen schnell identifizieren. Database Management verwendet die in der Tabelle events_statements_summary_by_digest im Performanceschema MySQL gespeicherten Daten. Die im Abschnitt Top 100 nach <Indikator> aufgelisteten SQL-Anweisungen sind normalisierte Anweisungen, und die angezeigten Daten werden ab dem Zeitpunkt aggregiert, an dem jede Anweisung erstmals angezeigt wurde. Basierend auf den Daten werden die langsamsten, häufigsten oder ressourcenintensivsten SQL-Anweisungen angezeigt. Anhand dieser Informationen können Sie die Anweisungen identifizieren, die Performanceprobleme verursachen.

    Beachten Sie, dass einige Indikatoren in der Dropdown-Liste Top 100 nach <Indikator> als Standardspalten angezeigt werden. Wenn Sie die SQL-Anweisungen mit einem Indikator sortieren möchten, der keine Standardspalte ist, z.B. Erst gesehen, wird er als letzte Spalte hinzugefügt. Um die in diesem Abschnitt angezeigten Informationen weiter anzupassen, aktivieren oder deaktivieren Sie Optionen in der Dropdown-Liste Spalten. Bei einem HeatWave-fähigen DB-System können Sie SQL-Anweisungen auch filtern, indem Sie eine Option in der Dropdown-Liste HeatWave-Auslagerungsstatus auswählen.

    Im Folgenden finden Sie die Liste der Indikatoren oder Spalten im Abschnitt Top 100 nach <Indikator> in alphabetischer Reihenfolge.

    Indikator/Spalte Beschreibung

    Durchschnittliche Anweisungslatenz (Standardindikator)

    Die durchschnittliche Ausführungszeit der SQL-Anweisung, die für alle Ausführungen der Anweisung berechnet wird.

    Datenbank

    Der Name der Datenbank, auf der die SQL-Anweisung ausgeführt wurde, oder "-", wenn keine Datenbank angegeben ist. Dies ist eine Standardspalte, die nicht in der Liste der Indikatoren enthalten ist.

    Ausführungsstatus

    Der aktuelle Status oder das aktuelle Ergebnis der Ausführung der SQL-Anweisung.

    Wenn während der Ausführung einer SQL-Anweisung ein Fehler auftritt, wird in der Spalte Status ein Fehlersymbol (Fehler) angezeigt. Klicken Sie auf dieses Symbol, um den Fehlercode, die Anzahl der Vorkommen und die Fehlermeldung im Bereich Digest-Fehlerdetails anzuzeigen. Beachten Sie, dass Fehlerdetails möglicherweise nicht angezeigt werden, wenn bestimmte Variablen oder Tabellen im MySQL-Setup nicht konfiguriert oder aktiviert sind.

    Erstes Vorkommen

    Die Zeit, zu der die SQL-Anweisung zum ersten Mal angezeigt wurde.

    HeatWave ausgelagert

    Die Anzahl der SQL-Anweisungsausführungen, die an den In-Memory-Abfragebeschleuniger HeatWave ausgelagert wurden.

    Hinweis: Neben den Daten aus der Tabelle events_statements_summary_by_digest ist HeatWave-Auslagerungsstatus in der Dropdown-Liste für Indikatoren für DB-Systeme mit HeatWave-Aktivierung aufgeführt.

    Letztes Vorkommen

    Die Zeit, zu der die SQL-Anweisung zuletzt angezeigt wurde.

    Kein guter Index verwendet

    Die Gesamtanzahl, wie oft MySQL keinen effektiven Index zur Ausführung der SQL-Anweisung finden konnte, was zu weniger effizienten Ausführungsplänen und einer langsameren Performance führte.

    Kein Index verwendet

    Gibt an, wie oft insgesamt kein Index zur Ausführung der SQL-Anweisung verwendet wurde.

    Abfrage

    Die normalisierte SQL-Anweisung. Dies ist eine Standardspalte, die nicht in der Liste der Indikatoren enthalten ist. Klicken Sie auf die Anweisung, um SQL-Details anzuzeigen.

    Temporäre Tabellen

    Die Gesamtanzahl der internen temporären Tabellen, die im Arbeitsspeicher oder auf Platte von der SQL-Anweisung erstellt wurden.

    Anzahl Ausführungen gesamt

    Gibt an, wie oft die SQL-Anweisung insgesamt ausgeführt wurde.

    Insgesamt betroffene Zeilen

    Die Gesamtanzahl der Zeilen, die von der SQL-Anweisung geändert wurden.

    Insgesamt untersuchte Zeilen

    Die Gesamtanzahl der Zeilen, die von der SQL-Anweisung geprüft wurden.

    Insgesamt gesendete Zeilen

    Die Gesamtanzahl der von der SQL-Anweisung zurückgegebenen Zeilen.

    Anweisungslatenz gesamt

    Die Gesamtzeit für alle Ausführungen der SQL-Anweisung.

    Wenn Sie die vom ausgewählten Performanceindikator aufgelisteten SQL-Anweisungen prüfen, klicken Sie auf den Link in der Spalte Abfrage, um eine einzelne SQL-Anweisung zu prüfen, die im Bereich SQL-Details relevant ist. Der Bereich SQL-Details enthält zwei Registerkarten:

    • Query Analyzer: Auf dieser Registerkarte können Sie:
      • Verwenden Sie die Anweisungs-Digest-ID, um eine Abfrage zu schreiben und zusätzliche Informationen aus dem DB-System abzurufen.
      • Zeigen Sie die normalisierte SQL-Anweisung an.
      • Detaillierte Informationen über Ausführungszeit, Zeilenanzahl und temporäre Tabellen überwachen Sie können beispielsweise die Anzahl der untersuchten oder zurückgegebenen Zeilen und die Anzahl der erstellten temporären Tabellen überwachen.

      Informationen zu Anweisungsdigests finden Sie unter Performance Schema Statement Digests and Sampling.

    • Plan erläutern: Auf dieser Registerkarte können Sie:
      • Auf dieser Seite zeigen Sie die Details einer SQL-Beispielanweisung an, z.B. wann sie ausgeführt wurde, die benötigte Zeit und den tatsächlichen SQL-Code mit Literalwerten, die zur Ausführungszeit übergeben wurden.
      • Überwachen Sie den für die SQL-Anweisung generierten Ausführungsplan, der wertvolle Einblicke in die Ausführung der SQL-Anweisung bietet. Durch die Visualisierung der Ausführungsstrategie können Sie Performanceengpässe identifizieren, wie Full Table Scans oder ineffiziente Joins, und die Anweisungen optimieren.

        Standardmäßig wird eine grafische Darstellung der EXPLAIN-Ausgabe angezeigt, die es erleichtert, den Ausführungsplan zu verstehen, Ineffizienzen zu erkennen und fundierte Entscheidungen zur Optimierung zu treffen. Der grafische Explain-Plan zeigt den Ausführungsplan als Baum an, wobei jeder Knoten einen bestimmten Vorgang im Ausführungsprozess darstellt, wie Tabellenscans, Joins und Sortierungen. Die Knoten sind farbcodiert, um verschiedene Arten von Vorgängen darzustellen, und Sie können auf einzelne Knoten klicken, um weitere Informationen zu jedem Schritt zu erhalten. Wenn Sie den grafischen Explain-Plan anzeigen, klicken Sie auf Drehen, um das Diagramm gegen den Uhrzeigersinn zu drehen. Sie können auch das Mausrad, das Touchpad oder die +/--Tasten verwenden, um das Explain-Plandiagramm zu vergrößern oder zu verkleinern.

        Wählen Sie in der Dropdown-Liste Anzeigeoption die Option Tabellarischer Explain-Plan aus, um den Ausführungsplan oder die Reihenfolge der Vorgänge anzuzeigen, die zum Ausführen einer Anweisung in einem tabellarischen Format verwendet werden. Diese Tabelle enthält die Liste der Vorgänge und die folgenden Details:

        • Tabellenname: Der Name der Tabelle, auf die während der Ausführung zugegriffen wird.
        • Typ: Der Typ der Zugriffsmethode, mit der während der Ausführung auf die Tabelle zugegriffen wird.
        • Schlüssel: Der Index, der von der Anweisung verwendet wird, sofern vorhanden.
        • Ref: Wenn die Anweisung einen Join umfasst, die Spalten oder Konstanten, die mit dem Schlüssel verglichen werden.
        • Zeilen: Die geschätzte oder tatsächliche Anzahl von Zeilen, die der Vorgang voraussichtlich verarbeiten oder zurückgeben wird.
        • Gefiltert: Der Prozentsatz der Zeilen, die basierend auf der WHERE-Klausel gefiltert werden sollen.
        • Kosten: Die geschätzten Kosten für die Ausführung des Vorgangs.

        Um die in der Ansicht Tabellarischer Explain-Plan angezeigten Informationen anzupassen, wählen Sie Spalten in der Dropdown-Liste Spalten aus, oder heben Sie die Auswahl auf.