メインコンテンツまでスキップ

Databricks での結合パフォーマンスの最適化

Databricks を使用すると、バッチテーブルまたはストリーミングテーブル間で結合を作成できます。一部の結合はコストがかかる場合があります。以下は、結合を最適化するのに役立ちます。

結合の詳細については、「Databricksでの結合の操作」を参照してください。

Photonを有効にしたコンピュートでは、常に最適な参加タイプが選択されます。 Photonとはを参照してください。 Photon が有効になっている最新の Databricks Runtime バージョンを使用すると、通常は良好なJOINパフォーマンスが得られますが、次の推奨事項も考慮する必要があります。

  • クロスJOINは非常にコストがかかります。 低レイテンシーまたは頻繁な再計算を必要とするワークロードとクエリからクロスJOINを削除します。

  • JOINの順序は重要です。 複数のJOINを実行する場合は、必ず最初に最小のテーブルをJOINし、次に結果を大きなテーブルとJOINします。

  • オプティマイザーは、多くのJOINと集計を含むクエリで苦労する可能性があります。 中間結果を保存すると、クエリの計画と結果の計算を高速化できます。

  • パフォーマンスを向上させるために、最新の統計を保持します。予測的最適化 統計を自動的に更新および維持します。 Unity Catalog マネージドテーブルの予測的最適化を参照してください。

    また、クエリ プランナーでクエリ プランナーの統計を更新するために、クエリ ANALYZE TABLE table_name COMPUTE STATISTICS を実行することもできます。

注記

Databricks Runtime 14.3 LTS 以降では、Delta Lake がデータをスキップするために統計を収集する列を変更し、Delta ログ内の既存の統計を再計算できます。Delta 統計カラムの指定を参照してください。