当前位置: 首页 > news >正文

postgresql 查询缓慢原因分析

pg_stat_activity

最近发现系统运行缓慢,查询数据老是超时,于是排查下pg_stat_activity 系统表,看看有没有耗时的查询sql

SELECT pid, state, query, query_start, backend_type FROM pg_stat_activity 
WHERE state = 'active' AND query LIKE '%SELECT%'
--and now()-query_start > interval '1 s'
and query_start > now() - interval '5 minutes' order by query_start;

在这里插入图片描述

非空闲的:<> 表示不等于,idle表示空闲的

state <> 'idle'

非空闲的,也可以理解为活跃的状态

state = 'active'

如果有非常耗时的sql,就试着执行下Explain解释语句,分析下sql耗时原因

复杂 pg_stat_activity

SELECTpid,datname,usename,client_addr,application_name,STATE,backend_start,xact_start,xact_stay,query_start,query_stay,REPLACE ( query, chr( 10 ), ' ' ) AS query 
FROM(SELECTpgsa.pid AS pid,pgsa.datname AS datname,pgsa.usename AS usename,pgsa.client_addr client_addr,pgsa.application_name AS application_name,pgsa.STATE AS STATE,pgsa.backend_start AS backend_start,pgsa.xact_start AS xact_start,EXTRACT ( epoch FROM ( now( ) - pgsa.xact_start ) ) AS xact_stay,pgsa.query_start AS query_start,EXTRACT ( epoch FROM ( now( ) - pgsa.query_start ) ) AS query_stay,pgsa.query AS query FROMpg_stat_activity AS pgsa WHEREpgsa.STATE != 'idle' AND pgsa.STATE != 'idle in transaction' AND pgsa.STATE != 'idle in transaction (aborted)' ) idleconnections 
ORDER BYquery_stay DESC

在这里插入图片描述
看一下xact_stay这个值是不是很大,很大的话就看看或者Explain下query里面的sql语句

解释语句

EXPLAIN (ANALYZE) <your_query>;

在这里插入图片描述

pg_locks

去pg_locks和pg_stat_activity两张表里关联查询是不是有锁(关联条件是pid和transcationId),排除下是不是锁的原因,如果有锁,就把锁进程kill掉试试

shared_buffers

查询数据库参数有没有问题

show shared_buffers

vacuum

收缩表,清理无用数据

vacuum full verbose table_name
vacuum full verbose analyze table_name
http://www.lryc.cn/news/291072.html

相关文章:

  • N65总账凭证管理凭证查询(sql)
  • 投资1300万欧元!芬兰正式启动量子旗舰项目
  • 【3分钟开服】幻兽帕鲁服务器一键部署保姆教程
  • PandaWallet :Web3.0世界的入口
  • 微软Azure-openAI 测试调用及说明
  • java 图书管理系统 spring boot项目
  • Ubuntu系统安装 Redis
  • 简单记录一下如何安装python以及pycharm(图文教程)(可供福建专升本理工类同学使用)
  • 浏览器内存泄漏排查指南
  • ClickHouse(22)ClickHouse集成HDFS表引擎详细解析
  • idea报错 :(java: 找不到符号)
  • 设计软件最重要的目标是可理解性?
  • 酒店|酒店管理小程序|基于微信小程序的酒店管理系统设计与实现(源码+数据库+文档)
  • C++ 数论相关题目,博弈论,SG函数,集合-Nim游戏
  • ​学者观察 | 区块链技术理论研究与实践观察——中央财经大学朱建明
  • 使用Promethues+Grafana监控Elasticsearch
  • 研学活动报名平台源码开发方案
  • 一篇文章,彻底理解数据库操作语言:DDL、DML、DCL、TCL
  • Linux编辑器之vim的使用
  • 制作OpenSSH 9.6 for openEuler 22.03 LTS的rpm升级包
  • DNS配置文件讲解
  • 142:vue+leaflet 加载tomtom地图(多种形式)
  • Android Mac电脑更改aar中的文件再打包
  • Jmeter脚本录制:抓取IOS手机请求包!
  • 大数据分析案例-基于随机森林算法构建电影票房预测模型
  • 关于Gitlab用户登录提示无限重定向循环ERR_TOO_MANY_REDIRECTS
  • 突破瓶颈,提升开发效率:Spring框架进阶与最佳实践-IOC
  • 西方网络安全人才培养的挑战及对策
  • 计算机网络之三次握手,四次挥手
  • 深度强化学习(王树森)笔记09