PostgreSQL 数据库运维问题 查看数据库进程 查看CPU占用过高的SQL

查看数据库的当前连接数和状态的几种方式:
只是能看出数据库服务是否正在运行和启动路径
#切换用户
su postgres
pg_ctl status
 

1.查看数据库进程

统计当前postgresql相关进程数,在大体上可以估算数据库的连接数,非精准,但是目前最常用的
ps -ef |grep postgres |wc -l
 
包含本窗口的所有数据库连接数
SELECT count(*) FROM pg_stat_activity;
 

2.数据库CPU占用过高

(1)查看CPU占用
使用top命令查看CPU占用情况(如果用了容器,需要进入容器内部查看相应的进程)
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
 
 
(2)根据PID(系统进程号)来查询执行的sql
su - postgres
psql
SELECT procpid, START, now()-START AS lap, current_query FROM (
    SELECT backendid, pg_stat_get_backend_pid (S.backendid) AS procpid,
    pg_stat_get_backend_activity_start (S.backendid) AS START,pg_stat_get_backend_activity (S.backendid) AS current_query  
FROM (SELECT pg_stat_get_backend_idset () AS backendid) AS S) AS S WHERE current_query <> '<IDLE>' and procpid=15874
ORDER BY lap DESC;
 
定位到sql之后,查看执行计划即可explain+sql
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值