【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
sql_plan_monitor怎么查看逻辑执行计划???
【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
这种生成的执行计划是不是物理执行计划呢 ?
我再找其他的同学确定一下 稍后再回复你
问了相关的研发 应该查询的都是物理执行计划 没有逻辑执行计划 应该是文档的描述有问题 已经反馈给相关的同学 后期验证 验证有问题 会修复
理论上算物理执行计划的算子,块级别对数据进行采样扫描
查看SQL的逻辑执行计划可以通过DBMS_XPLAN.DISPLAY_CURSOR 这个包获取,如果SQL还在执行中还没有执行计划也是可以查看的,可以通过DBMS_XPLAN.DISPLAY_ACTIVE_SESSION_PLAN 获取,SQL PLAN MONITOR 可以获取每个算子的执行情况,比如首次扫描行的开始时间,结束时间,扫描了多少行,rescan了多少次等等,对优化查看SQL慢在那里还是很有用的
描述的有问题,是物理执行计划
根据文档库中的信息,GV$SQL_PLAN_MONITOR
视图确实用于获取执行计划的相关信息,但更具体来说,它主要用于追踪每个执行算子的详细性能指标,如首行返回时间、输出行数等(来源:【实时执行计划展示 → 实时 SQL Plan Monitor】)。这通常指的是物理执行计划。
对于逻辑执行计划,OceanBase 数据库提供了 DBMS_XPLAN
系统包来查询。因此,GV$SQL_PLAN_MONITOR
中的信息更多地反映了物理执行计划的细节,而不是逻辑执行计划。
如果您想查看逻辑执行计划,建议使用 EXPLAIN
命令或者查询 DBMS_XPLAN
。例如:
EXPLAIN SELECT * FROM your_table;
或
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
(来源:【阅读和管理 OceanBase 数据库 SQL 执行计划】)
综上所述,通过 GV$SQL_PLAN_MONITOR
查看的是物理执行计划,而逻辑执行计划则需要通过其他方式获取。希望这个解释能帮助您理解两者的区别。如果有更多问题,请随时提问。
具体信息可参考以下文档: