Verwendung der Spark kostenbasierter Optimierer - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwendung der Spark kostenbasierter Optimierer

Spark Version 2.09 und höher können einen kostenbasierten Optimierer (CBO) verwenden. Der CBO wählt auf der Grundlage verschiedener Tabellenstatistiken den günstigsten Ausführungsplan für eine Abfrage aus. CBO versucht, die Ausführung der Abfrage in Bezug auf CPU-Auslastung und I/O zu optimieren und kehrt so schnell wie möglich zurück. In den meisten Fällen fehlen Datenstatistiken jedoch häufig, insbesondere dann, wenn die Erfassung von Statistiken noch teurer ist als die Datenverarbeitung. Selbst wenn die Statistiken verfügbar sind, sind sie wahrscheinlich veraltet. Im Folgenden finden Sie bewährte Methoden für die Verwendung des CBO:

  • Erfassen Sie Statistiken zu allen Spalten, die bei Vorgängen wie Verknüpfungen, Filtern und Gruppieren nach verwendet werden. Dies hilft dem Optimierer, bessere Entscheidungen zu treffen. Wird ANALYZE TABLE zum Sammeln von Statistiken verwendet.

  • Erhöhen Sie die Häufigkeit der Erfassung von Statistiken, wenn sich die Daten schnell ändern. Veraltete Statistiken können zu nicht optimierten Plänen führen.

  • Beginnen Sie mit den Standard-CBO-Parametern und passen Sie sie nur bei Bedarf an. Aggressive Optimierungen können die Laufzeiten verlängern.

  • Überprüfen Sie, ob CBO die optimalen Pläne auswählt, indem Sie den optimierten Plan erzwingen und die Leistung vergleichen. Aktivieren Sie die Optimizer-Protokollierung, um die Pläne zu vergleichen.

  • Für bessere Optimierungen verwenden Sie CBO in Kombination mit Hinweisen für Partitionierung, Bucketing und Data Skew. Partitionierung kann CBO bei der Skalierung unterstützen.

  • Um Planregressionen frühzeitig zu erkennen, sollten Sie die Abfrageleistung nach der Aktivierung von CBO kontinuierlich überwachen.