PG中如何获取函数中正在执行的真实SQL语句(定位存储过程中最耗时部分)

0    58    1

Tags:

👉 本文共约3803个字,系统预计阅读时间或需15分钟。

一、 问题背景

​ 开发反馈PG中某函数执行时间很长,超过30分钟,想看看慢在其中哪一段SQL。但是如果直接通过pg_stat_activity查询,只能看到上层执行函数的语句,而不像oracle和SqlServer能看到当前在执行什么。咨询群友们得到了几种方法,下面测试和对比一下。
简单模拟如下:

执行函数
PG中如何获取函数中正在执行的真实SQL语句(定位存储过程中最耗时部分)
查看运行情况

PG中如何获取函数中正在执行的真实SQL语句(定位存储过程中最耗时部分)

二、 方法汇总及对比

PG中如何获取函数中正在执行的真实SQL语句(定位存储过程中最耗时部分)

三、 直接分析函数代码

\sf 函数名 可以查看函数代码,这适用于函数非常简单的场景,例如我们的例子
PG中如何获取函数中正在执行的真实SQL语句(定位存储过程中最耗时部分)
如果函数中SQL很长,输出可能会错行,不方便分析,可以用psql将其导出成文本。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
PG中如何获取函数中正在执行的真实SQL语句(定位存储过程中最耗时部分)后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部