赞
踩
1.查询长事务
- 1.检查数据库中存在的长事务
- postgres=#
- select
- usename,
- datname,
- state,
- wait_event,
- xact_start,
- now(),query,pid,
- now()-xact_start as time
- from
- pg_stat_activity
- where
- now()-xact_start>interval '5 sec'
- and query !~ 'COPY' and state<>'idle' ;
-
- -[ RECORD 1 ]------------------------------------------------------------------------------------------------
- usename | postgres
- datname | postgres
- state | idle in transaction
- waiting | f
- xact_start | 2023-07-02 11:09:22.607884+08
- now | 2023-07-04 16:59:43.212717+08
- query | select xxxxxxxx
- pid | 12546 --长事务的事务ID
- time | 2 day 05:50:26.909971
2.停止长事务
- 检查该SQL执行未结束的原因,如需尽快恢复前台应用,可以在确认安全的情况下使用如下命令,将该长事务终止。
- SELECT pg_terminate_backend(12546);
3.总结
长事务导致数据库查询缓慢,需要找出该长事务,同时需要确认该长事务是否需要杀掉。如果严重影响系统运行,则可以西安杀掉该长事务。保证系统的交易稳定运行。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。