跳到主要内容

DML 计划调优:定位导入与查询性能瓶颈

调优前检查清单

在开始 DML 计划调优前,请先确认:

  • 是否能清晰区分导入阶段查询阶段的耗时。
  • 是否查看过 Profile / Query Plan,定位耗时最长的算子或阶段。
  • 是否已阅读导入概览,了解适配场景的导入方式。

调优定位:导入瓶颈 vs 查询瓶颈

DML(如 INSERT INTO ... SELECT)的性能瓶颈通常来自两部分。第一步是定位瓶颈所在阶段,再针对性调优。

瓶颈类型典型表现调优入口
导入阶段瓶颈写入吞吐低、Sink 算子耗时高参考导入概览选择合适的导入方式与最佳实践
查询阶段瓶颈扫描、Join、聚合等算子耗时高参考计划调优其他小节排查与调优

导入部分调优

Doris 支持从多种数据源导入数据。灵活运用 Doris 提供的导入功能,可以高效地将各类来源的数据导入到 Doris 中进行分析。

  • 目的:根据数据来源与时效要求,选择合适的导入方式以提升 DML 整体性能。
  • 入口导入概览
  • 说明:导入方式包含 Stream Load、Broker Load、Routine Load、INSERT 等,最佳实践详情见上述链接。

查询部分调优

若瓶颈位于查询阶段,请按计划调优其他小节进行排查与优化,例如表结构优化、统计信息、Join 顺序与算子改写等。详见计划调优

FAQ

Q1:如何快速判断 DML 慢在导入还是查询? 查看 Profile 中各算子耗时,Sink/Load 相关算子耗时高即为导入瓶颈,Scan/Join/Agg 等算子耗时高即为查询瓶颈。

Q2:INSERT INTO ... SELECT 慢,应优先看哪一部分? 建议先确认 SELECT 子查询是否慢;若 SELECT 单独执行较快,则瓶颈通常在写入侧。

Q3:是否所有导入方式都需要按相同方法调优? 不是。不同导入方式(Stream Load、Broker Load、Routine Load、INSERT 等)的调优手段不同,请参考导入概览