如何查看SQL是否走了并行计划?
2 个赞
1. 使用 EXPLAIN 命令查看执行计划
最直接的方法是通过 EXPLAIN 命令查看优化器生成的逻辑执行计划。如果 SQL 启用了并行执行,执行计划中通常会包含 PX COORDINATOR (并行协调器)、PX PARTITION ITERATOR 或 EXCHANGE 等并行执行相关的算子4。
2. 通过 GV$OB_SQL_AUDIT 视图获取 Trace ID
如果 SQL 已经执行过,可以通过查询 SQL 审计视图来获取该 SQL 的 trace_id 。这是进一步深入诊断的基础。
3. 查询 GV$SQL_PLAN_MONITOR 视图(推荐)
利用上一步获取的 trace_id ,查询 GV$SQL_PLAN_MONITOR 视图可以获取该 SQL 真实的物理执行计划详情。在这个视图中,可以通过 PROCESS_NAME 字段确认是否产生了并行执行线程(如 P000 , P001 等),以及通过 PARALLEL 字段查看实际的并行度。
1 个赞
看执行计划中是否包含PX PARTITION ITERATOR或PX BLOCK ITERATOR等,执行计划详情里面NOTE字段也会包含并行度信息