当前位置:   article > 正文

15.PG数据库由于长事务导致查询缓慢的处理方法_pg 长事务

pg 长事务

1.查询长事务

  1. 1.检查数据库中存在的长事务
  2. postgres=#
  3. select
  4. usename,
  5. datname,
  6. state,
  7. wait_event,
  8. xact_start,
  9. now(),query,pid,
  10. now()-xact_start as time
  11. from
  12. pg_stat_activity
  13. where
  14. now()-xact_start>interval '5 sec'
  15. and query !~ 'COPY' and state<>'idle' ;
  16. -[ RECORD 1 ]------------------------------------------------------------------------------------------------
  17. usename | postgres
  18. datname | postgres
  19. state | idle in transaction
  20. waiting | f
  21. xact_start | 2023-07-02 11:09:22.607884+08
  22. now | 2023-07-04 16:59:43.212717+08
  23. query | select xxxxxxxx
  24. pid | 12546 --长事务的事务ID
  25. time | 2 day 05:50:26.909971

2.停止长事务 

  1. 检查该SQL执行未结束的原因,如需尽快恢复前台应用,可以在确认安全的情况下使用如下命令,将该长事务终止。
  2. SELECT pg_terminate_backend(12546);

3.总结

长事务导致数据库查询缓慢,需要找出该长事务,同时需要确认该长事务是否需要杀掉。如果严重影响系统运行,则可以西安杀掉该长事务。保证系统的交易稳定运行。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/135376
推荐阅读
相关标签
  

闽ICP备14008679号