暂无图片
在postgresql12中,SQL单独执行不慢,但在存储过程中执行慢。
我来答
分享
暂无图片 匿名用户
在postgresql12中,SQL单独执行不慢,但在存储过程中执行慢。

遇到过几个这样的案例,SQL单独执行不慢,但在存储过程中执行慢,没查到LOCK,查EVENT也没什么可疑的。存储过程的特点是有10多个甚至更多的表的处理更新,中间没有COMMIT。找不到其他原因,我推测是因为事务太大的原因。

这可能是什么原因,还有什么方法排查呢?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
梧桐

1.启用慢查询日志,修改 postgresql.conf 文件,

log_min_duration_statement = 5000  # 记录执行时间超过 5 秒的查询
复制

2.分析执行计划

EXPLAIN ANALYZE SELECT * FROM your_table WHERE your_condition;
复制

3,查询 pg_stat_activity 视图,查看存储过程执行时是否有锁等待或其他异常:

SELECT * FROM pg_stat_activity WHERE state = 'active';
复制

4.启用 pg_stat_statements 扩展,分析存储过程中 SQL 语句的执行时间和调用次数:

CREATE EXTENSION pg_stat_statements;
SELECT query, total_time, calls FROM pg_stat_statements ORDER BY total_time DESC LIMIT 10;
复制
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Postgresql中如何修改已存在表上的constraint?
回答 1
官方文档http://postgres.cn/docs/13/sqlaltertable.htmlALTERTABLE[IFEXISTS][ONLY]name[]DROPCONSTRAINT[IFEX
postgreSQL 14的集群或者是常用的高可用架构是哪些?
回答 1
PostgreSQL14是一种开源的关系型数据库管理系统,支持多种高可用架构,以下是常用的几种:1.StreamingReplication:这是PostgreSQL中最常见的高可用架构之一。通过将主
物理复制的从库,如何同步主库的统计信息或者统计信息在从库如何维护的
回答 1
物理复制不会直接同步统计信息,它是动态生成的,与数据变更和查询执行有关。可以通过在从库上手动运行analyze或依赖autovacuum机制来确保统计信息的更新。如果希望避免手动干预,可以根据业务需求
数据采集完写入postgreSQL数据库,怎么操作比较稳妥?
回答 1
采集完的数据如果是文件比如excel,可以直接用pgfdw读取数据文件
如何把oracle 的游标转成postgresql的?
回答 1
已采纳
PL/pgSQL—SQLProceduralLanguage
pg_bulkload安装出错
回答 1
cannotfindlpam>找不到pam,缺少依赖包pamdevel
请问一下,pg分区表的表结构可以使用 pg_dump 导出吗?
回答 1
已采纳
可以,指定表导出里面就有相关信息了
PostgreSQL的macaddr类型字段,如何模糊查询?
回答 1
已采纳
可以测试下通过countdistinctSQL查询如下selectcount(distinctmacmacaddr)fromtestmac或者查询countgroupbySQL如下selectcoun
postgreSQL 用copy出来的数据也是是用COPY命令在导入吗?
回答 1
一般是
pcm跟pgcm有啥区别
回答 2
已采纳
PCM(PulseCodeModulation)是一种将模拟信号转换为数字信号的编码方式。PCM将模拟信号按照一定的采样率进行采样,并将每个采样值量化为一个数字,然后将这些数字编码成二进制数,以便数字