sql_plan_monitor怎么查看逻辑执行计划

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):


sql_plan_monitor怎么查看逻辑执行计划???

看下文档说明?
GV$SQL_PLAN_MONITOR-V4.3.5-OceanBase 数据库文档-分布式数据库使用文档


这种是不是 叫做物理执行计划?

看一下这个文档

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013761

这种生成的执行计划是不是物理执行计划呢 ?

我再找其他的同学确定一下 稍后再回复你

问了相关的研发 应该查询的都是物理执行计划 没有逻辑执行计划 应该是文档的描述有问题 已经反馈给相关的同学 后期验证 验证有问题 会修复

1 个赞

理论上算物理执行计划的算子,块级别对数据进行采样扫描

查看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 查看的是物理执行计划,而逻辑执行计划则需要通过其他方式获取。希望这个解释能帮助您理解两者的区别。如果有更多问题,请随时提问。

具体信息可参考以下文档:

  1. 实时执行计划展示
  2. 阅读和管理 OceanBase 数据库 SQL 执行计划
  3. OceanBase 术语
  4. 执行计划缓存内存管理
  5. SQL 调优典型场景和案例
  6. 执行计划缓存
  7. OceanBase 数据库