pg_stat_activity

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

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

Table 1. pg_catalog.pg_stat_activity
类型参考描述
datidoidpg_database.oid数据库OID
datnamename 数据库名称
pidinteger 服务进程的进程ID
sess_idinteger 会话ID
usesysidoidpg_authid.oid登录此后端的用户的OID
usenamename 登录到此后端的用户的名称
application_nametext 连接到此后端的应用程序的名称
client_addrinet 连接到此后端的客户端的IP地址。 如果此字段为空,则表示客户端通过服务器计算机上的Unix套接字连接,或者这是内部进程(如autovacuum)。
client_hostnametext 客户端的主机名,由client_addr的反向DNS查找报告。 对于IP连接,此字段仅为非null,并且仅在启用log_hostname时才为空。
client_portinteger 客户端用于与此后端通信的TCP端口号,如果使用Unix套接字,则为-1
backend_starttimestamptz 后端进程启动时间
xact_starttimestamptz 事务开始时间
query_starttimestamptz 查询开始执行时间
state_changetimestampz 状态最后一次改变的时间
waitingboolean 如果等待一个锁为True,否则为false
statetext 此后端的当前整体状态。可能的值是:
  • active: 后端正在执行查询。

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

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

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

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

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

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

lock, replication或resgroup

rsgidoidpg_resgroup.oid资源组OID
rsgnametextpg_resgroup.rsgname资源组名称
rsgqueuedurationinterval 对于排队查询,查询排队的总时间。

Parent topic: 系统目录定义