pg_stat_activity

pg_stat_activity

视图pg_stat_activity每行显示一个服务器进程同时详细描述与之关联的用户会话和查询。 这些列报告当前查询上可用的数据,除非参数stats_command_string被关闭。 此外,只有在检查视图的用户是超级用户或者是正在报告的进程的拥有者时,这些列才可见。

current_query中存储的查询文本字符串的最大长度可以通过服务器配置参数track_activity_query_size来控制。

Table 1. pg_catalog.pg_stat_activity
类型 参考 描述
datid oid pg_database.oid 数据库OID
datname name   数据库名称
pid integer   服务进程的进程ID
sess_id integer   会话ID
usesysid oid pg_authid.oid 登录此后端的用户的OID
usename name   登录到此后端的用户的名称
application_name text   连接到此后端的应用程序的名称
client_addr inet   连接到此后端的客户端的IP地址。 如果此字段为空,则表示客户端通过服务器计算机上的Unix套接字连接,或者这是内部进程(如autovacuum)。
client_hostname text   客户端的主机名,由client_addr的反向DNS查找报告。 对于IP连接,此字段仅为非null,并且仅在启用log_hostname时才为空。
client_port integer   客户端用于与此后端通信的TCP端口号,如果使用Unix套接字,则为-1
backend_start timestamptz   后端进程启动时间
xact_start timestamptz   事务开始时间
query_start timestamptz   查询开始执行时间
state_change timestampz   状态最后一次改变的时间
waiting boolean   如果等待一个锁为True,否则为false
state text   此后端的当前整体状态。可能的值是:
  • active: 后端正在执行查询。

  • idle: 后端正在等待新的客户端命令。

  • idle in transaction: 后端处于事务中,但当前未执行查询。

  • idle in transaction (aborted): 此状态类似于事务中的空闲,除了事务中的一个语句导致错误。

  • fastpath function call: 后端正在执行快速路径功能。

  • disabled: 如果在此后端禁用track_activities,则报告此状态。

query text   此后端的最新查询的文本。 如果状态为活跃,则此字段显示当前正在执行的查询。 在所有其他状态中,它显示最后执行的查询。
waiting_reason text   服务器进程正在等待的原因。 值可以是:

lock, replication或resgroup

rsgid oid pg_resgroup.oid 资源组OID
rsgname text pg_resgroup.rsgname 资源组名称
rsgqueueduration interval   对于排队查询,查询排队的总时间。