一,pg_stat_activity
视图pg_stat_activity每行显示一个服务器进程同时详细描述与之关联的用户会话和查询。这些列报告当前查询上可用的数据,除非参数stats_command_string被关闭。此外,只有在检查视图的用户是超级用户或者是正在报告的进程的拥有者时,这些列才可见。
列current_query中存储的查询文本字符串的最大长度可以通过服务器配置参数pgstat_track_activity_query_size来控制。
kingledb=# \d pg_stat_activity View "pg_catalog.pg_stat_activity" Column | Type | Modifiers ------------------+--------------------------+----------- datid | oid | datname | name | procpid | integer | sess_id | integer | usesysid | oid | usename | name | current_query | text | waiting | boolean | query_start | timestamp with time zone | backend_start | timestamp with time zone | client_addr | inet | client_port | integer | application_name | text | xact_start | timestamp with time zone | waiting_reason | text | rsgid | oid | rsgname | text | rsgqueueduration | interval | View definition: SELECT s.datid, d.datname, s.procpid, s.sess_id, s.usesysid, u.rolname AS usename, s.current_query, s.waiting, s.query _start, s.backend_start, s.client_addr, s.client_port, s.application_name, s.xact_start, s.waiting_reason, s.rsgid, s.r sgname, s.rsgqueueduration FROM pg_database d, pg_stat_get_activity(NULL::integer) s(datid, procpid, usesysid, application_name, current_query, waiting, xact_start, query_start, backend_start, client_addr, client_port, sess_id, waiting_reason, rsgid, rsgname, rs gqueueduration), pg_authid u WHERE s.datid = d.oid AND s.usesysid = u.oid;
二,详解
名称 | 类型 | 引用 | 描述 |
---|---|---|---|
datid | oid | pg_database.oid | 数据库OID |
datname | name | 数据库名称 | |
procpid | integer | 服务进程的进程ID | |
sess_id | integer | 会话ID | |
usesysid | oid | pg_authid.oid | 角色ID |
usename | name | 角色名 | |
current_query | text | 进程正在执行的当前查询 | |
waiting | boolean | 如果正等待一个锁则为真,否则为假 | |
query_start | timestamptz | 查询开始执行的时间 | |
backend_start | timestamptz | 后台进程开始的时间 | |
client_addr | inet | 客户端地址 | |
client_port | integer | 客户端端口 | |
application_name | text | 客户端应用名 | |
xact_start | timestamptz | 事务开始时间 | |
waiting_reason | text | 服务进程正在等待的原因。值可以是:
lock replication |
> active:表示当前用户正在执行查询等操作。
> idle in transaction:表示当前用户在事务中。
> idle:表示当前用户空闲。