优化 Azure Databricks 中的联接性能

使用 Azure Databricks,可以跨批处理表或流式处理表创建联接。 某些联接的费用可能很昂贵。 下列做法可帮助你优化联接。

有关联接的详细信息,请参阅在 Azure Databricks 上使用联接

启用了 Photon 的计算始终选择最佳联接类型。 请参阅什么是 Photon?。 使用启用了 Photon 的近期 Databricks Runtime 版本时,通常可提供良好的联接性能,但还应考虑以下建议:

  • 交叉联接非常昂贵。 从需要低延迟或频繁重新计算的工作负载和查询中移除交叉联接。

  • 联接的顺序很重要。 执行多个联接时,请始终先联接最小的表,然后将结果与较大的表联接。

  • 优化器在处理具有许多联接和聚合的查询时会很吃力。 保存中间结果可以加速查询规划和计算结果。

  • 保持更新的统计信息以提高性能。

    可运行查询 ANALYZE TABLE table_name COMPUTE STATISTICS 来更新查询规划器中的统计信息。

备注

在 Databricks Runtime 14.3 LTS 及更高版本中,可以修改 Delta Lake 为跳过数据收集统计信息的列,然后在 Delta 日志中重新计算现有统计信息。 请参阅指定增量统计信息列