开发者社区> 问答> 正文

OceanBase数据库中我问一下perf看函数调用,并没有我执行的sql的相关函数,这是什么情况?

OceanBase数据库中我问一下perf看函数调用,并没有我执行的sql的相关函数,这是什么情况?

展开
收起
曹凯1211 2023-08-10 11:02:44 87 0
来自:OceanBase
2 条回答
写回答
取消 提交回答
  • 在OceanBase数据库中,如果你使用perf命令来查看函数调用,但没有找到与你执行的SQL相关的函数,可能有几个原因:

    1、OceanBase数据库是基于分布式架构的,运行在多个节点上。可能你只在一个节点上执行了SQL语句,而perf只能在当前节点上进行函数调用的跟踪,因此你可能没有看到其他节点上执行的函数调用。

    2、SQL语句在执行过程中会经过多个层级的函数调用,其中包括存储引擎、查询优化器、事务管理器等。如果你只关注与SQL语句直接相关的函数调用,那么可能会错过一些间接调用的函数。你可以尝试增加perf命令的调试参数,如perf top -g,以获取更详细的函数调用堆栈信息。

    2023-08-11 23:20:26
    赞同 展开评论 打赏
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    如果已经确定执行SQL语句,那就检查perf的配置参数设置是否正确:

    sudo perf record -a -e cache-misses,branch-misses -o trace.octet
    

    这个命令可以记录 cache-misses 和 branch-misses 两种事件,这两种事件与函数调用有关。

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

相关电子书

更多
用SQL做数据分析 立即下载
云数据库OceanBase 架构演进及在金融核心系统中的实践 立即下载
自研金融数据库OceanBase的创新之路 立即下载