暂无图片
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
暂无图片
梦想
升级问题到: 潜在风险
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
pgbackrest备份问题
回答 1
pgbackrest正确进行初始化的顺序1需要在远程控制端进行初始化,在远程控制端完成初始化后,在再数据库端进行初始化[postgres@postgre14pgbackrest]$pgbackrest
postgresql row_number()产生的行号是按新表/新视图生成的,还是从基础表里直接取出来的?
回答 1
值是新生成的,基础表里没有存储这个数据。
如何查看某个存储过程中,涉及到那些对象,例如表,索引等等
回答 2
版本14开始,如果使用beginatomic语法创建新形式的函数或存储过程,则可以从pgdepend中查到依赖关系。Demo如下:CREATETABLEtest(idint,infotext);创建依
pg测试库
回答 2
mysql5.7以后没有你说的test库了。5.6安装好有一个test。但是那个也不是为了看执行计划的。看执行计划和有没有test无关。pg安装好没有test,你可以手工建立一个。但是一般测试和正式是
在一个高并发的PostgreSQL环境中,你观察到系统在高峰时段遇到了锁等待的问题。为了更好地理解和解决这个问题,下面哪个工具或特性最有助于分析和诊断事务间的锁竞争情况?
回答 1
已采纳
A.使用pglocks和pgstatactivity视图结合查询
Postgresql 的function 有什么参数可以优化的吗?
回答 2
已采纳
有两个方法:一个是编程得语言可以选择SQL和Pl/pgsql,另一个方面是与函数的稳定性参数有关。下面有一篇关于创建索引的文章,你可以参考下使用函数及表达式索引部分。
Oracle数据导入postgresql数据库有什么好的方法?
回答 4
已采纳
ora2pg工具或者外部表插件oraclefdw,oraclefdw支持按schema自动导入,语法非常灵活:IMPORTFOREIGNSCHEMA"SCOTT"FROMSERVE
在同一台服务器上,备份恢复一个数据库,那种方式快?
回答 1
在同一台服务器上对PostgreSQL数据库进行备份恢复以快速生成测试库,以下是一些较为安全快捷的方式:一、使用pgdump和pgrestore备份数据库 db1:pgdumpFcbvfdb
为什么 pg_stat_statements 的 query 列的值都是 null?
回答 2
pgstatstatements 模块提供一种方法追踪一个服务器所执行的所有SQL语句的执行统计信息。由于安全性原因,只有超级用户和 pgreadallstats 角色的
postgresql high performance原来有个9.6版本的,有没有新的比如12,13的高性能英文版
回答 1
AlfredAhmed,GregorySmith,EnricoPirozzi《PostgreSQL10HighPerformance》VallarapuNagaAvinashKumar《Postgre