PG_STAT_ACTIVITY
PG_STAT_ACTIVITY视图显示和当前用户查询相关的信息。
名称 |
类型 |
描述 |
---|---|---|
datid |
oid |
用户会话在后端连接到的数据库OID。 |
datname |
name |
用户会话在后端连接到的数据库名称。 |
pid |
bigint |
后端线程ID。 |
usesysid |
oid |
登录该后端的用户OID。 |
usename |
name |
登录该后端的用户名。 |
application_name |
text |
连接到该后端的应用名。 |
client_addr |
inet |
连接到该后端的客户端的IP地址。 如果此字段是null,则表示通过服务器机器上UNIX套接字连接客户端或者这是内部进程,如autovacuum。 |
client_hostname |
text |
客户端的主机名,此字段是通过client_addr的反向DNS查找得到。此字段只有在启动log_hostname且使用IP连接时才非空。 |
client_port |
integer |
客户端用于与后端通讯的TCP端口号,如果使用Unix套接字,则为-1。 |
backend_start |
timestamp with time zone |
后端进程启动时间,即客户端连接服务器的时间。 |
xact_start |
timestamp with time zone |
当前事务的启动时间,如果没有事务是活跃的,则为null。如果当前查询是首个事务,则这列等同于query_start列。 |
query_start |
timestamp with time zone |
开始当前活跃查询的时间, 如果state的值不是active,则这个值是上一个查询的开始时间。 |
state_change |
timestamp with time zone |
状态最后一次改变的时间。 |
waiting |
boolean |
如果后端当前正等待锁则为true。 |
enqueue |
text |
语句当前排队状态。可能值是:
|
state |
text |
后端当前总体状态。可能值是:
说明:
普通用户只能查看到自己帐户所对应的会话状态。即其他帐户的state信息为空。例如以judy用户连接数据库后,在pg_stat_activity中查看到的普通用户joe及初始用户omm的state信息为空: SELECT datname, usename, usesysid, state,pid FROM pg_stat_activity; datname | usename | usesysid | state | pid ----------+---------+----------+--------+----------------- gaussdb | dbadmin | 10 | | 139968752121616 gaussdb | dbadmin | 10 | | 139968903116560 db_tpcds | judy | 16398 | active | 139968391403280 gaussdb | dbadmin | 10 | | 139968643069712 gaussdb | dbadmin | 10 | | 139968680818448 gaussdb | joe | 16390 | | 139968563377936 (6 rows) |
resource_pool |
name |
用户使用的资源池。 |
query_id |
bigint |
查询语句的ID。 |
query |
text |
此后端的最新查询。如果state状态是active(活跃的),此字段显示当前正在执行的查询。其他情况表示上一个查询。 |
connection_info |
text |
json格式字符串,记录当前连接数据库的驱动类型、驱动版本号、当前驱动的部署路径、进程属主用户等信息(参见connection_info)。 |