Statistik zur Abfrageleistung

Von Bedeutung

Dieses Feature befindet sich in der Betaversion. Arbeitsbereichsadministratoren können den Zugriff auf dieses Feature über die Vorschauseite steuern. Siehe Manage Azure Databricks Previews.

Diese Seite beschreibt die Leistungseinblicke, die Azure Databricks im Abfrageverlauf zurückgibt und wie sie darauf reagieren.

Wenn Abfragen ausgeführt werden, gibt Azure Databricks möglicherweise Einblicke zurück, die Möglichkeiten zur Verbesserung der Leistung identifizieren.

Suchen von Erkenntnissen und Empfehlungen für Ihre Abfrage

Einblicke werden im Abfrageverlauf und im Abfrageprofil angezeigt. Im Bereich "Abfragedetails" wird eine Zusammenfassung der Erkenntnisse angezeigt, die nach ihrer geschätzten Auswirkung auf die Gesamtaufgabendauer bewertet werden. Auf der Registerkarte "Leistungseinblicke " im Abfrageprofil werden die vollständigen Details für jeden Einblick angezeigt.

Optimieren mit Genie Code

Wenn eine Abfrage über umsetzbare Einblicke verfügt, wählen Sie "Optimieren" aus, um Genie Code zu öffnen. Für Erkenntnisse, die eine Abfrageänderung erfordern, schreibt Genie Code die Abfrage um und stellt die Änderungen für Ihre Genehmigung dar. Für Erkenntnisse, die Tabellen- oder Berechnungsänderungen umfassen, fasst Genie Code die empfohlenen Aktionen als Nur-Sprache-Text zusammen.

Weitere Informationen zum Arbeiten mit Genie Code finden Sie unter Genie Code.

Einblicke zur Abfrageoptimierung

COVERAGE_FILTER_KEYS_CLUSTERING

Die Tabelle wird nach einem oder mehreren Schlüsseln gruppiert , die während des Tabellenscans nicht in Filtern verwendet werden.

Empfehlung: Fügen Sie Filter zu den Clusterschlüsseln hinzu, um den Byte-Lesevorgang zu reduzieren.

COVERAGE_FILTER_KEYS_PARTITIONING

Die Tabelle wird durch einen oder mehrere Schlüssel partitioniert , die während des Tabellenscans nicht in Filtern verwendet werden.

Empfehlung: Fügen Sie Filter für die Partitionierungsschlüssel hinzu, um das Lesen von Bytes zu reduzieren.

COVERAGE_PHOTON

Photon kann diesen Vorgang nicht beschleunigen, sodass die Abfrage das Standardlaufzeitmodul verwendet.

Empfehlung: Überprüfen Sie die Photon-Einschränkungen , und passen Sie die Abfrage an, um einen unterstützten Ausführungspfad zu verwenden.

EXPLODING_JOIN

Die Verknüpfung erzeugt deutlich mehr Zeilen als gelesen.

Empfehlung: Bestimmen Sie, welche Ergebnisuntermenge Sie benötigen, aktualisieren Sie dann die Verknüpfungsbedingung, oder verringern Sie die Anzahl der Eingabezeilen aus beiden Beziehungen.

FLOW_FULL_RECOMPUTE

Der Fluss wird als vollständige Neukompilierung ausgeführt.

Empfehlung: Schreiben Sie die Abfrage neu, um die inkrementelle Unterstützung zu unterstützen, um das Lesen von Bytes zu reduzieren.

REDUNDANT_AGGREGATION

Ein Aggregatvorgang hat das Abfrageergebnis nicht geändert.

Empfehlung: Entfernen Sie das Aggregat, oder wenden Sie Primär- und Fremdschlüsseleinschränkungen an.

SELECTIVE_JOIN

Die Verknüpfung erzeugt deutlich weniger Zeilen als gelesen.

Empfehlung: Bestimmen Sie, welche Ergebnisuntermenge Sie benötigen, und fügen Sie dann Filter vor der Verknüpfung hinzu, um Eingabezeilen zu reduzieren.

WIDE_PROJECTION

Die Abfrage projektet alle Spalten aus der Tabelle.

Empfehlung: Project nur die Spalten, die Sie zum Reduzieren des Bytes-Lesevorgangs benötigen.

Einblicke im Datenlayout

AUTO_LIQUID_CLUSTERING

Der Tisch ist manuell optimiert und kann von der automatischen Flüssigclusterung profitieren.

Recommendations:

  • Konvertieren Sie die Tabelle von extern in verwaltet, um eine bessere Leistung und automatische Wartung zu erzielen .
  • Aktivieren Sie die Predictive Optimization in der Tabelle für automatische Wartungsvorgänge.
  • Aktivieren Sie die automatische Clusterung in der Tabelle, um die Lesevorgänge von Bytes zu reduzieren.

GLEICHZEITIGES_SCHREIBEN

Gleichzeitige Schreibvorgänge in die Tabelle führen zu Konflikten , die automatisch aufgelöst oder fehlschlagen.

Empfehlung: Überprüfen Sie den Delta-Verlauf , um gleichzeitige Schreibvorgänge zu identifizieren und die Planung anzupassen, um Konflikte zu vermeiden.

COVERAGE_STATS_DELTA

Delta-Datenübersprung-Statistiken fehlen oder sind für die Tabellen-Scan-Dateifilter unvollständig, sodass die Abfrage dateiinterne Filter verwendet.

Der Statistikstatus für jeden Filter kann eine der folgenden Sein:

  • Vollständig: Statistiken sind für alle Filter verfügbar.
  • Teilweise: Statistiken sind für eine Teilmenge von Filtern verfügbar.
  • Verfügbar: Statistiken sind für keinen Filter verfügbar.
  • Unbenutzte: Statistiken können nicht verwendet werden, da der Filter den Datentyp konvertiert.

Empfehlung:Erfassen sie Delta-Statistiken , um das Lesen von Bytes zu reduzieren.

COVERAGE_STATS_OPTIMIZER

Kostenbasierte Optimiererstatistiken fehlen oder unvollständig, sodass der Abfrageplan Standardmäßige Heuristiken verwendet.

Empfehlung:Statistiken sammeln , damit der Optimierer einen besseren Plan erstellen kann.

DATA_SKEW

Daten werden ungleichmäßig über Computerressourcen verteilt.

Empfehlung: Überprüfen Sie die Datenverteilung, und verwenden Sie dann die Schlüsselsalzung oder Voraggregation, um die Workload auszugleichen.

Berechnen und Ressourcenerkenntnisse

DATA_SPILL

Daten, die während der Abfrageausführung auf den Datenträger übergelaufen sind, da die Daten nicht in den Arbeitsspeicher passen.

Empfehlung: Erhöhen Sie die Lagergröße , um Arbeitsspeicher hinzuzufügen. Verringern Sie die Anzahl der Zeilen, Spalten oder die Größe großer Spalten (Zeichenfolgen, Arrays, Karten, Strukturen), um die Speicherauslastung zu verringern.

EXCESSIVE_QUEUE_TIME

Die Abfrage wurde in der Lagerwarteschlange gewartet.

Empfehlung: Erhöhen Sie die maximale Anzahl von Clustern im Lager, um die Warteschlangenzeit zu reduzieren.

IO_THROTTLING

Eine Cloudspeicheranforderung wurde vom Cloudanbieter gedrosselt.

Empfehlung: Wenden Sie sich an Ihren Administrator, um erhöhte Speicheranforderungsgrenzwerte von Ihrem Cloudanbieter anzufordern.

Weitere Ressourcen:

Eine umfassendere Übersicht über bewährte Methoden zur Leistung finden Sie im umfassenden Leitfaden zum Optimieren von Databricks-, Spark- und Delta Lake-Workloads.