开发者社区> 问答> 正文

请问下OceanBase数据库,OB4.1 MySQL租户, 我想通过视图,查询缓存的物理执行计划?

请问下OceanBase数据库,OB4.1 MySQL租户, 我想通过GV$OB_PLAN_CACHE_PLAN_EXPLAIN视图,查询缓存的物理执行计划,但是这个视图没有数据,是怎么回事?91e7636d7c2a4690f6bd679d0abfe6e0.png

展开
收起
真的很搞笑 2023-07-13 08:06:09 182 0
来自:OceanBase
3 条回答
写回答
取消 提交回答
  • 在 OceanBase 数据库的 OB4.1 版本中,使用 MySQL 租户时,查询缓存的物理执行计划可以通过 GV$OB_PLAN_CACHE_PLAN_EXPLAIN 视图进行查看。然而,如果这个视图没有数据,可能是由于以下原因之一:

    1. 缓存为空:如果数据库实例或会话使用的执行计划缓存为空,那么 GV$OB_PLAN_CACHE_PLAN_EXPLAIN 视图将不会返回任何数据。您可以尝试执行一些复杂的查询语句,以便生成并填充执行计划缓存。

    2. 访问权限限制:检查当前用户是否具有访问 GV$OB_PLAN_CACHE_PLAN_EXPLAIN 视图的权限。确保用户具有适当的权限来查询该视图。

    3. 版本兼容性:确定您正在使用的是与 OB4.1 版本对应的正确视图。不同版本的数据库可能会稍微有所不同,因此,请确认您使用的是正确版本的视图。

    2023-07-13 22:50:20
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    没有开启缓存:如果您没有开启缓存,那么 GV$OB_PLAN_CACHE_PLAN_EXPLAIN 视图中就没有缓存的物理执行计划数据。您可以在启动数据库时,使用 obproxy 命令行工具开启缓存,例如:
    Copy
    obproxy -c /path/to/obproxy.conf -s start
    没有缓存数据:如果您的查询没有命中缓存,那么 GV$OB_PLAN_CACHE_PLAN_EXPLAIN 视图中就没有缓存的物理执行计划数据。您可以尝试使用已知的 SQL 语句进行查询,以确保其被缓存。例如,您可以使用以下语句查询某个表的物理执行计划:
    Copy
    SELECT * FROM table_name WHERE 1=0;

    2023-07-13 20:52:18
    赞同 展开评论 打赏
  • 9e192ec80e0f592925228b6e21de78f2.png
    ,此回答整理自钉群“[社区]技术答疑群OceanBase”

    2023-07-13 09:13:47
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
蚂蚁OceanBase数据库团队,用于OceanBase技术原理、运维经验和案例分享、对外交流。
问答排行榜
最热
最新

相关电子书

更多
用户态高速块缓存方案 立即下载
自研金融数据库OceanBase的创新之路 立即下载
高性能Web架构之缓存体系 立即下载

相关镜像