ITPub博客

首页 > 数据库 > 国内数据库 > sys_stat_activity视图

sys_stat_activity视图

原创 国内数据库 作者:风陵渡口_ 时间:2023-10-17 15:12:21 0 删除 编辑

kingbase数据库的sys_stat_activity视图,记录当前数据库实例的会话信息。日常工作中可以通过此视图信息排查数据库问题。通过命令select * from 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、

select pid,sys_blocking_pids(pid) as blocked,state,query,wait_event,wait_event_type from sys_stat_activity where state != 'idle';

查看当前被阻塞的会话信息。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30162734/viewspace-2989305/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: copy命令使用总结
请登录后发表评论 登录
全部评论

注册时间:2015-03-14

  • 博文量
    53
  • 访问量
    43491