PG中查询会话的视图pg_stat_activity

0    117    1

Tags:

👉 本文共约15332个字,系统预计阅读时间或需58分钟。

pg_stat_activity

pg_stat_activity视图每个服务器进程将有一行,显示与该进程当前活动相关的信息。

表 28.3. pg_stat_activity 视图

列类型描述
datid oid这个后端连接到的数据库的OID
datname name这个后端连接到的数据库的名称
pid integer这个后端的进程 ID
leader_pid integer并行组组长的进程ID,如果该进程是并行查询工作者。如果该进程是一个并行组的组长或不参与并行查询,则为NULL
usesysid oid登录到这个后端的用户的 OID
usename name登录到这个后端的用户的 OID
application_name text连接到这个后端的应用的名称
client_addr inet连接到这个后端的客户端的 IP 地址。如果这个字段为空,它表示客户端通过服务器机器上的一个 Unix 套接字连接或者这是一个内部进程,如自动清理。
client_hostname text已连接的客户端的主机名,由client_addr的反向 DNS 查找报告。 这个字段将只对 IP 连接非空,并且只有 log_hostname被启用时才会非空。
client_port integer客户端用于与此后端通信的TCP端口号,如果使用Unix套接字,则为-1。如果该字段为空,它表示这是一个内部服务器进程。
backend_start timestamp with time zone这个进程被启动的时间。对客户端后端来说,这就是客户端连接到服务器的时间。
xact_start timestamp with time zone这个进程的当前事务被启动的时间,如果没有活动事务则为空。 如果当前查询是它的第一个事务,这一列等于query_start列。
query_start timestamp with time zone当前活动查询被开始的时间,如果state不是active,则为上一个查询开始的时间
state_change timestamp with time zonestate上一次被改变的时间
wait_event_type text后端等待的事件类型,如果有的话;否则NULL。参见表 28.4
wait_event text如果后端当前正在等待,则等待事件名称,否则为NULL。参见表 28.5表 28.13
state text这个后端的当前总体状态。可能的值为:active: 后端正在执行一个查询。idle: 后端正在等待一个新的客户端命令。idle in transaction: 后端在一个事务中,但是当前没有正在执行一个查询。idle in transaction (aborted): 这个状态与 idle in transaction相似,除了在该事务中的一个语句导致了一个错误。fastpath function call: 后端正在执行一个 fast-path 函数。disabled: 如果在这个后端中track_activities被禁用,则报告这个状态。
backend_xid xid这个后端的顶层事务标识符,如果存在。
backend_xmin xid当前后端的xmin范围。
query_id bigint这个后端的最近查询的标识符。 如果stateactive,这个字段显示当前正在执行的查询的标识符。 在所有其他状态,它显示执行的最后一个查询的标识符。 默认不计算查询标识符,因此该字段将为空,除非启用compute_query_id参数或配置了计算查询标识符的第三方模块。
query text这个后端最近查询的文本。如果stateactive,这个字段显示当前正在执行的查询。 在所有其他状态下,它显示上一个被执行的查询。默认情况下,查询文本会被截断至1024个字节,这个值可以通过参数track_activity_query_size更改。
backend_type text当前后端的类型。可能的类型为 autovacuum launcher, autovacuum worker, logical replication launcher, logical replication worker, parallel worker, background writer, client backend, checkpointer, archiver, startup, walreceiver, walsender and walwriter. 除此以外,由扩展注册的后台Worker可能有额外的类型。

注意

wait_eventstate列是独立的。如果一个后端处于active状态,它可能是也可能不是某个事件上的waiting。如果状态是active并且wait_event为非空,它意味着一个查询正在被执行,但是它被阻塞在系统中某处。

表 28.4. 等待事件类型

等待事件类型描述
Activity服务器进程空闲。此事件类型表示在其主处理循环中等待活动的进程。 wait_event将识别特定的等待点;参见表 28.5
BufferPin服务器进程正在等待对数据缓冲的独占访问。 如果另一个进程持有一个打开的游标,该游标最后一次从相关缓冲区读取数据,则缓冲区销等待可能是漫长的。 参见表 28.6
Client服务器进程正在等待连接到用户应用程序的套接字上的活动。 因此,服务器预计发生一些独立于其内部进程的事情。wait_event将识别特定的等待点;参见表 28.7
Extension服务器进程正在等待扩展模块定义的某个条件。参见表 28.8
IO服务器进程正在等待一个I/O操作完成。wait_event将识别特定的等待点;参见表 28.9
IPC服务器进程正在等待与另一个服务器进程进行交互。wait_event将识别特定的等待点;参见表 28.10
Lock服务器进程正在等待一个重量级锁。重量级锁,也称为锁管理器锁或简单锁,主要保护表等SQL可见对象。 然而,它们也用于确保某些内部操作的互斥,例如关系扩展。wait_event将识别等待的锁的类型;参见表 28.11
LWLock服务器进程正在等待一个轻量级锁。大多数这样的锁保护共享内存中的特定数据结构。 wait_event将包含标识轻量级锁用途的名称。 (有些锁有特定的名称;其他锁是一组锁的一部分,每个锁具有类似的目的。)参见表 28.12
Timeout服务器进程正在等待超时过期。wait_event将识别特定的等待点;参见表 28.13

表 28.5. Activity类型的等待事件

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
PG中查询会话的视图pg_stat_activity后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部