开发者社区> 问答> 正文

OceanBase数据库中在call一个存储过程的时候开头到结束都时行了输出 时差在2秒左右是为啥?

老师好,我遇到一个问题就是在call一个存储过程的时候 这个将近用了50多秒 ,然后我过程里面添加了这行代码,从开头到结束都时行了输出, 时差项多在2秒左右,这是咋回事儿 啊?106f7e88f597a4244712bab3593d1fa8.png
250af5bebbd4c030d9999a7c9dea6933.png

展开
收起
曹凯1211 2023-08-02 13:38:08 126 0
2 条回答
写回答
取消 提交回答
  • 我也碰到同样的问题,就是call开始到调用存储过程最开始的第一条语句,中间有几十秒的延时。不知道这个时间浪费到哪里了。

    就是CALL到真正运行起来存储过程,耗费了几十秒。

    我怀疑是oceanbase的BUG问题

    2023-12-04 11:59:26
    赞同 1 展开评论 打赏
  • 北京阿里云ACE会长

    存储过程内部逻辑复杂,花费较多时间运行。存储过程中有循环、连接表等操作,花费了很多时间。

    存储过程调用了其他存储过程或函数,增长了运行时间。

    数据库负载高,存储过程需要等待数据库资源,延长了运行时间。

    网络延迟,存储过程 residing 在另一个数据库实例上,需要通过网络调用,带来了额外的延迟。

    有时间消耗较高的操作,如文件 I/O、锁等。

    数据库配置不足,如内存、CPU 等资源紧张,影响执行效率。

    存储过程中有缓慢的 SQL 语句。

    为了定位原因,你可以采取以下方式:

    分割存储过程,每部分输出运行时间,找出时间花费最多的部分。
    观察执行计划,查看 SQL 执行效率。
    临时去除部分非关键逻辑,看是否能缩短执行时间。
    增加存储过程中的输出信息,来追踪具体运行过程。
    查看数据库性能监控指标,如CPU使用率、内存使用情况等。

    2023-08-02 19:41:54
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载