【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】4.3.5
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
如题所示@论坛小助手,
MYSQL模式下::::获取某SQL耗时,直接执行最后会有耗时结果,但是同时查询结果也一并回显,在数据量很大的是时候,我对查询结果不关心,但是回显出来了造成一定困扰。所以想知道OB有没有类似explain analyze的功能,不回显结果可以获取执行耗时,如果能一并查询到执行计划就更好了。
论坛小助手
#4
OceanBase 数据库支持类似于 EXPLAIN ANALYZE
的功能,通过 EXPLAIN
语句结合 GV$SQL_PLAN_MONITOR
视图可以获取 SQL 的执行计划和性能指标,而不会回显查询结果。具体步骤如下:
-
使用 EXPLAIN
语句:
EXPLAIN FOR PLAN (SELECT * FROM your_table WHERE your_condition);
这条语句会生成执行计划,但不会实际执行 SQL。
-
使用 GV$SQL_PLAN_MONITOR
视图:
SELECT * FROM GV$SQL_PLAN_MONITOR WHERE SQL_ID = '<your_sql_id>';
通过这条语句可以获取 SQL 的执行计划和性能指标,如首行返回时间、输出行数、HASH 冲突率和磁盘落盘次数等。
这种方法可以帮助你在不回显查询结果的情况下获取 SQL 的执行耗时和执行计划。
检索到的文档如下:
- 实时执行计划展示
- 诊断实践:使用 SQL_PLAN_MONITOR 分析性能问题
- 分析 SQL 监控视图
1 个赞
淇铭
#6
应该是没有和mysql这个一样 不过你可以看看sql_monitor信息 这个算子的信息
看一下这个文档
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002017067