暂无图片
pg xact_rollback突增
我来答
分享
梦想
2022-05-09
pg xact_rollback突增

4.22 日 日常检查,统计命中率发现数据库回滚比例突然增高。通过pg_stat_database 发现

xact_rollback突然增高。

日志中无过多rollback

没有pg_stat_statements扩展。

求大神指教分析思路。


查询命中率SQL:


select datname,round(100*(xact_rollback::numeric/(case when xact_commit > 0 then xact_commit else 1 end + xact_rollback)),2)||$$ %$$ rollback_ratio, round(100*(blks_hit::numeric/(case when blks_read>0 then blks_read else 1 end + blks_hit)),2)||$$ %$$ hit_ratio, blk_read_time, blk_write_time, conflicts, deadlocks from pg_stat_database;

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
彭冲

xact_rollback过高,首先从数据库层面看并没有特别严重的影响。这个值不完全只有显式的rollback,比如执行语句出错系统也会自动的rollback,例如:

postgres=# begin;
BEGIN
postgres=*# select 1/0;
ERROR:  division by zero
postgres=!# commit;
ROLLBACK

上面语句出错,即使我们显式提交,系统也是自动rollback。

可以检查数据库日志是否有业务语句出错,比如批量数据处理、主键或唯一索引冲突等。

暂无图片 评论
暂无图片 有用 0
暂无图片
梦想
升级问题到: 潜在风险
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏