首页 > 数据库 > 国内数据库 > sys_stat_activity视图
test=# select * from sys_stat_activity limit 1;
-[ RECORD 1 ]----+------------------------------
datid | 后台连接数据库的id (oid)
datname | 数据库名
pid | 46317 #进程号
usesysid | 10
usename | system #连接用户名
application_name | sys_ksh collector # 通过后台连接的应用程序名称
client_addr | #后台连接的IP地址。当该字段为空时,说明客户端是在服务器主机上通过Unix的socket协议直连,或是数据库内部进程(如autovacuum等)
client_hostname | #客户端主机名
client_port | #客户端端口
backend_start | 2023-10-16 17:31:28.136011+08 #会话开始时间
xact_start | #事务开始时间
query_start | #查询开始时间
state_change | 2023-10-17 10:23:49.002900+08 #状态开始时间
wait_event_type | Activity #等待事务类型
wait_event | KshMain #登待事务
state | idle 事务状态
backend_xid |
backend_xmin |
query |
backend_type | ksh collector
state有以下几个值分别对应:
active:后端正在执行一个查询
idle:后端正在等待一个新的命令
idle in transaction:表示当前事务未提交
常用的命令总结
1、select count(*) from pg_stat_activity where state=‘idle’; 查询闲置连接数
2、 select count(*) from sys_stat_activity where pid != sys_backend_pid();查看当前活跃的客户端(不包含当前查询进程)
3、
select pid,state,CURRENT_TIMESTAMP - least(query_start,xact_start) AS runtime,
substr(query,1,25) AS current_query
from sys_stat_activity where not pid = sys_backend_pid();
4、
select * from sys_stat_activity where state<>'idle' and now()-query_start > interval '5 s' order by query_start ; 查看当前会话中查询超过5s的sql
5、
查看当前被阻塞的会话信息。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30162734/viewspace-2989305/ ,如需转载,请注明出处,否则将追究法律责任。