Abfrageleistung mit dem Explore-Abfrage-Tracker und dem Bereich „Leistung“ im Blick behalten

Der Explore-Abfrage-Tracker und der Bereich Explore-Leistung enthalten detaillierte Leistungsdaten für eine Explore-Abfrage. Anhand dieser Daten lassen sich wichtige Ausgangspunkte für die Fehlerbehebung und Lösung von Leistungsproblemen bei Abfragen ermitteln. Außerdem erhalten Sie Empfehlungen für Verbesserungen.

Abfrage-Tracker

Im Explore-Abfrage-Tracker wird der Fortschritt einer Explore-Abfrage während der Ausführung in den drei Phasen der Abfrage angezeigt.

Wenn die Ausführung einer Abfrage lange dauert, kann der Query Tracker angeben, in welcher Phase der Abfrage das Leistungsproblem auftritt. So lässt sich ermitteln, wo Leistungsprobleme auftreten können und wo Optimierungsmaßnahmen am effektivsten sind.

Der Abfrage-Tracker wird angezeigt, wenn ein Explore ausgeführt wird, sofern entweder der Bereich Explore-Visualisierung oder der Bereich Explore-Daten geöffnet ist.

Bereich Leistung

Wenn Sie das Explore-Feld Leistung aufrufen möchten, klicken Sie auf den Link Leistungsdetails ansehen, der für jede ausgeführte Explore-Abfrage verfügbar ist.

Im Bereich Leistung wird die Zeit angezeigt, die die Abfrage in den drei Abfragephasen verbracht hat. Außerdem sind Links zur Leistungsdokumentation und zum Dashboard „Systemaktivität“ enthalten, in dem aktuelle und bisherige Leistungsdaten für die Abfrage und den Explore angezeigt werden, mit dem die Abfrage erstellt wurde.

Abfragephasen

Wenn in einem Looker-Explore eine Datenbankabfrage ausgeführt wird, erfolgt dies in drei Phasen:

Phase der Abfrageinitialisierung

Während der Phase Abfrageinitialisierung führt Looker alle Aufgaben aus, die erforderlich sind, bevor die Abfrage an Ihre Datenbank gesendet wird. Die Phase Abfrageinitialisierung umfasst die folgenden Aufgaben:

Auf der Dokumentationsseite Messwerte zur Abfrageleistung wird beschrieben, wie Sie die Explore-Funktion Messwerte zur Abfrageleistung in Systemaktivität verwenden, um detaillierte Aufschlüsselungen einer Abfrage aufzurufen. Die Phase Query initialization (Abfrageinitialisierung) des Query Trackers umfasst die Ereignisse, die in den Phasen Asynchronous worker phase (Phase für asynchrone Worker), Initialization phase (Initialisierungsphase) und Connection handling phase (Phase für die Verbindungsbearbeitung) des Explores Query Performance Metrics (Messwerte zur Abfrageleistung) beschrieben werden.

Phase „Abfrage wird ausgeführt“

In der Phase Abfrage wird ausgeführt kontaktiert Looker Ihre Datenbank, fragt sie ab und gibt die Ergebnisse der Abfrage zurück. Leistungsprobleme in dieser Phase können auf Probleme mit der externen Datenbank hinweisen, z. B. PDTs, deren Neuerstellung lange dauert und die möglicherweise optimiert werden müssen, oder externe Datenbanktabellen, die möglicherweise optimiert werden müssen. Die Phase Abfrage wird ausgeführt umfasst die folgenden Aufgaben:

  • Erstellen aller PDTs in der Datenbank, die für die Explore-Abfrage erforderlich sind
  • Die angeforderte Abfrage wird für die Datenbank ausgeführt.

Auf der Dokumentationsseite Messwerte zur Abfrageleistung wird beschrieben, wie Sie die Explore-Funktion Messwerte zur Abfrageleistung in Systemaktivität verwenden, um detaillierte Aufschlüsselungen einer Abfrage aufzurufen. Die Phase Abfrage wird ausgeführt des Abfrage-Trackers umfasst die Ereignisse, die in der Phase Hauptabfragen des Explore Leistungsmesswerte für Abfragen beschrieben werden.

Wenn in dieser Phase Leistungsprobleme auftreten, können Sie Folgendes tun:

  • Erstellen Sie Explores nach Möglichkeit mit many_to_one-Joins. Wenn Sie Ansichten von der feinsten Detailebene mit höher aggregierten Ebenen zusammenführen (many_to_one), erzielen Sie in der Regel die beste Abfrageleistung.
  • Nutzen Sie das Caching umfassend und synchronisieren Sie es nach Möglichkeit mit Ihren ETL-Richtlinien, um den Datenbanktraffic durch Abfragen zu reduzieren. Standardmäßig speichert Looker Abfragen für eine Stunde im Cache. Sie können die Caching-Richtlinie steuern und Looker-Datenaktualisierungen mit Ihrem ETL-Prozess synchronisieren, indem Sie Datengruppen in Explores mit dem Parameter persist_with anwenden. Durch die Maximierung des Caching kann Looker enger in die Backend-Datenpipeline eingebunden werden. Der Cache wird dann optimal genutzt, ohne das Risiko, dass veraltete Daten analysiert werden. Benannte Caching-Richtlinien können auf ein gesamtes Modell oder auf einzelne Explores und persistente abgeleitete Tabellen (PATs) angewendet werden.
  • Verwenden Sie die Looker-Funktion Aggregate Awareness, um Rollup- oder Zusammenfassungstabellen zu erstellen, die Looker nach Möglichkeit für Abfragen verwenden kann, insbesondere für häufige Abfragen großer Datenbanken. Sie können die Aggregatfunktion auch verwenden, um die Leistung ganzer Dashboards deutlich zu verbessern. Weitere Informationen finden Sie in der Anleitung zu aggregierten Daten.
  • Verwenden Sie dauerhafte abgeleitete Tabellen, um Abfragen zu beschleunigen. Konvertieren Sie Explores mit vielen komplexen oder leistungsschwachen Joins oder Dimensionen mit Unterabfragen oder Unterauswahlen in PDTs, damit die Ansichten vor der Laufzeit zusammengeführt und bereit sind.
  • Wenn Ihr Datenbankdialekt inkrementelle PDTs unterstützt, konfigurieren Sie inkrementelle PDTs, um die Zeit zu verkürzen, die Looker für das Neuerstellen von PDT-Tabellen benötigt.
  • Vermeiden Sie es, Ansichten in Explores mit verketteten Primärschlüsseln zusammenzuführen, die in Looker definiert sind. Verknüpfen Sie stattdessen die Basisfelder, aus denen der verkettete Primärschlüssel der Ansicht besteht. Alternativ können Sie die Ansicht als PDT neu erstellen, wobei der verkettete Primärschlüssel in der SQL-Definition der Tabelle und nicht im LookML einer Ansicht vordefiniert ist.
  • Verwenden Sie das Tool „In SQL-Runner erklären“ für Benchmarking. EXPLAIN gibt einen Überblick über den Abfrageausführungsplan Ihrer Datenbank für eine bestimmte SQL-Abfrage. So können Sie Abfragekomponenten erkennen, die optimiert werden können. Weitere Informationen finden Sie im Communitybeitrag zur Optimierung von SQL mit EXPLAIN.
  • Indexe deklarieren Sie können sich die Indexe jeder Tabelle direkt in Looker im SQL-Runner ansehen. Klicken Sie dazu in einer Tabelle auf das Zahnradsymbol und wählen Sie dann Indexe anzeigen aus.

    Die häufigsten Spalten, die von Indexen profitieren können, sind wichtige Datumsangaben und Fremdschlüssel. Wenn Sie diesen Spalten Indexe hinzufügen, wird die Leistung für fast alle Abfragen gesteigert. Dies gilt auch für PDTs. LookML-Parameter wie indexes, sort keys und distribution können entsprechend angewendet werden.

Phase „Ergebnisse werden verarbeitet“

Während der Phase Ergebnisse werden verarbeitet verarbeitet und rendert Looker die Ergebnisse der Abfrage. Die Phase Verarbeitungsergebnisse umfasst die folgenden Aufgaben:

Auf der Dokumentationsseite Messwerte zur Abfrageleistung wird beschrieben, wie Sie die Explore-Funktion Messwerte zur Abfrageleistung in Systemaktivität verwenden, um detaillierte Aufschlüsselungen einer Abfrage aufzurufen. Die Phase Ergebnisse werden verarbeitet im Query Tracker umfasst die Ereignisse, die in der Phase nach der Abfrage des Explores Messwerte zur Abfrageleistung beschrieben werden.

Wenn in dieser Phase Leistungsprobleme auftreten, können Sie Folgendes tun:

  • Verwenden Sie Funktionen wie Ergebnisse zusammenführen, benutzerdefinierte Felder und Tabellenkalkulationen nur sparsam. Diese Funktionen sind als Proof of Concept gedacht, um Ihnen bei der Entwicklung Ihres Modells zu helfen. Es empfiehlt sich, alle häufig verwendeten Berechnungen und Funktionen in LookML fest zu codieren. Dadurch wird SQL generiert, das in Ihrer Datenbank verarbeitet wird. Zu viele Berechnungen können den Java-Arbeitsspeicher der Looker-Instanz beanspruchen und dazu führen, dass die Looker-Instanz langsamer reagiert.
  • Beschränken Sie die Anzahl der Ansichten, die Sie in ein Modell einbeziehen, wenn eine große Anzahl von Ansichtsdateien vorhanden ist. Wenn Sie alle Ansichten in ein einziges Modell einbeziehen, kann sich die Leistung verlangsamen. Wenn ein Projekt eine große Anzahl von Ansichten enthält, sollten Sie in jedes Modell nur die Ansichtsdateien einbeziehen, die benötigt werden. Verwenden Sie strategische Namenskonventionen für Ansichtsdateinamen, damit Sie Gruppen von Ansichten in ein Modell einbeziehen können. Ein Beispiel finden Sie in der Dokumentation zum Parameter includes.
  • Vermeiden Sie es, standardmäßig eine große Anzahl von Datenpunkten in Dashboardkacheln und Looks zurückzugeben. Abfragen, die Tausende von Datenpunkten zurückgeben, benötigen mehr Arbeitsspeicher. Sorgen Sie dafür, dass Daten nach Möglichkeit eingeschränkt werden, indem Sie Frontend- Filter auf Dashboards, Looks und Explores anwenden und auf LookML-Ebene die Parameter required filters, conditionally_filter und sql_always_where verwenden.
  • Verwenden Sie die Option Alle Ergebnisse nur sparsam, um Abfragen herunterzuladen oder zu senden, da einige Abfragen sehr groß sein und den Looker-Server bei der Verarbeitung überlasten können.