PostgreSQL(九)内置系统视图

目录

    • 一、系统视图
    • 二、 pg_stat_activity 视图
      • 1.简介
      • 2.核心字段
      • 3.全部字段

一、系统视图

PGSQL 中提供了一系列内置的视图,包括系统视图其他视图

  • 系统视图提供了查询系统表的一些便利的访问方法。
  • 其他视图提供了访问内部服务器状态的方法。

官方文档: https://www.postgresql.org/docs/14/monitoring-stats.html

我们可以使用 \dv pg* 命令查询 PGSQL 中所有的内置系统视图:

postgres=# \dv pg*
List of relations
Schema | Name | Type | Owner
------------+---------------------------------+------+----------
pg_catalog | pg_available_extension_versions | view | postgres
pg_catalog | pg_available_extensions | view | postgres
pg_catalog | pg_config | view | postgres
pg_catalog | pg_cursors | view | postgres
pg_catalog | pg_file_settings | view | postgres
pg_catalog | pg_group | view | postgres
pg_catalog | pg_hba_file_rules | view | postgres
pg_catalog | pg_indexes | view | postgres
pg_catalog | pg_locks | view | postgres
pg_catalog | pg_matviews | view | postgres
pg_catalog | pg_policies | view | postgres
pg_catalog | pg_prepared_statements | view | postgres
pg_catalog | pg_prepared_xacts | view | postgres
pg_catalog | pg_publication_tables | view | postgres
pg_catalog | pg_replication_origin_status | view | postgres
pg_catalog | pg_replication_slots | view | postgres
pg_catalog | pg_roles | view | postgres
pg_catalog | pg_rules | view | postgres
pg_catalog | pg_seclabels | view | postgres
pg_catalog | pg_sequences | view | postgres
pg_catalog | pg_settings | view | postgres
pg_catalog | pg_shadow | view | postgres
pg_catalog | pg_shmem_allocations | view | postgres
pg_catalog | pg_stat_activity | view | postgres
pg_catalog | pg_stat_all_indexes | view | postgres
pg_catalog | pg_stat_all_tables | view | postgres
pg_catalog | pg_stat_archiver | view | postgres
pg_catalog | pg_stat_bgwriter | view | postgres
pg_catalog | pg_stat_database | view | postgres
pg_catalog | pg_stat_database_conflicts | view | postgres
pg_catalog | pg_stat_gssapi | view | postgres
pg_catalog | pg_stat_progress_analyze | view | postgres
pg_catalog | pg_stat_progress_basebackup | view | postgres
pg_catalog | pg_stat_progress_cluster | view | postgres
pg_catalog | pg_stat_progress_create_index | view | postgres
pg_catalog | pg_stat_progress_vacuum | view | postgres
pg_catalog | pg_stat_replication | view | postgres
pg_catalog | pg_stat_slru | view | postgres
pg_catalog | pg_stat_ssl | view | postgres
pg_catalog | pg_stat_subscription | view | postgres
pg_catalog | pg_stat_sys_indexes | view | postgres
pg_catalog | pg_stat_sys_tables | view | postgres
pg_catalog | pg_stat_user_functions | view | postgres
pg_catalog | pg_stat_user_indexes | view | postgres
pg_catalog | pg_stat_user_tables | view | postgres
pg_catalog | pg_stat_wal_receiver | view | postgres
pg_catalog | pg_stat_xact_all_tables | view | postgres
pg_catalog | pg_stat_xact_sys_tables | view | postgres
pg_catalog | pg_stat_xact_user_functions | view | postgres
pg_catalog | pg_stat_xact_user_tables | view | postgres
pg_catalog | pg_statio_all_indexes | view | postgres
pg_catalog | pg_statio_all_sequences | view | postgres
pg_catalog | pg_statio_all_tables | view | postgres
pg_catalog | pg_statio_sys_indexes | view | postgres
pg_catalog | pg_statio_sys_sequences | view | postgres
pg_catalog | pg_statio_sys_tables | view | postgres
pg_catalog | pg_statio_user_indexes | view | postgres
pg_catalog | pg_statio_user_sequences | view | postgres
pg_catalog | pg_statio_user_tables | view | postgres
pg_catalog | pg_stats | view | postgres
pg_catalog | pg_stats_ext | view | postgres
pg_catalog | pg_tables | view | postgres
pg_catalog | pg_timezone_abbrevs | view | postgres
pg_catalog | pg_timezone_names | view | postgres
pg_catalog | pg_user | view | postgres
pg_catalog | pg_user_mappings | view | postgres
pg_catalog | pg_views | view | postgres
(67 rows)

其中我们最常用的就是 pg_stat_activity 视图,下面我们详细看一下:

二、 pg_stat_activity 视图

1.简介

pg_stat_activity 是 PostgreSQL 内置的系统视图,该视图将为每个服务器进程显示一行数据,数据中会展示与当前活动进程的相关信息。

pg_stat_activity 作为查询监控的视图,其具有如下特点:

服务端事件采集 客户端消费方式 历史查询落地 性能损耗 分布式采集 查询性能数据
主动拉取

官方文档: https://www.postgresql.org/docs/14/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW

2.核心字段

pg_stat_activity 视图核心字段查询结果如下所示:

select datname,pid,state,query,client_addr,query_start from pg_stat_activity;

PostgreSQL(九)内置系统视图_第1张图片

表示当前用户没有权限,除超级用户外,一般用户只能查询到自己数据库下的相关查询语句。

pg_stat_activity 视图核心字段说明如下:

  • datname:连接数据库名称。
  • pid:进程ID。
  • state:进程的整体状态,active 表示进程正在执行查询。
  • query:进程的查询SQL,默认查询文本被截断为 1024 字节。
  • client_addr:连接到数据库的客户端 IP 地址,为空则表示客户端是通过服务器上的 Unix 套接字连接的,或者这是一个内部进程,例如 autovacuum。
  • query_start:进程的查询开始时间,如果 state 不是 active,则为最后一个查询开始的时间。

3.全部字段

pg_stat_activity 视图查询结果如下所示:

mydb=> select * from pg_stat_activity;
 datid  | datname  |  pid  | leader_pid | usesysid |  usename   |           application_name           | client_addr | client_hostname | client_port |         backend_start         |          xact_start           |          query_start          |         state_change          | wait_event_type | wait_event | state  | backend_xid | backend_xmin | query_id |              query              |  backend_type
--------+----------+-------+------------+----------+------------+--------------------------------------+-------------+-----------------+-------------+-------------------------------+-------------------------------+-------------------------------+-------------------------------+-----------------+------------+--------+-------------+--------------+----------+---------------------------------+----------------
        |          | 12328 |            |       10 | postgres   |                                      |             |                 |             |                               |                               |                               |                               |                 |            |        |             |              |          | <insufficient privilege>        |
        |          | 19360 |            |          |            |                                      |             |                 |             |                               |                               |                               |                               |                 |            |        |             |              |          | <insufficient privilege>        |
  16399 | mobiledb | 34012 |            |    16398 | mobileuser | DBeaver 22.3.4 - Main <mobiledb>     |             |                 |             |                               |                               |                               |                               |                 |            |        |             |              |          | <insufficient privilege>        |
  16399 | mobiledb |  5676 |            |    16398 | mobileuser | DBeaver 22.3.4 - Metadata <mobiledb> |             |                 |             |                               |                               |                               |                               |                 |            |        |             |              |          | <insufficient privilege>        |
 273657 | mydb     | 11756 |            |   273656 | root       | psql                                 | 127.0.0.1   |                 |       54910 | 2023-06-16 15:59:17.215151+08 | 2023-06-16 16:57:00.684529+08 | 2023-06-16 16:57:00.684529+08 | 2023-06-16 16:57:00.684548+08 |                 |            | active |             |       153924 |          | select * from pg_stat_activity; | client backend
        |          | 14852 |            |          |            |                                      |             |                 |             |                               |                               |                               |                               |                 |            |        |             |              |          | <insufficient privilege>        |
        |          | 14720 |            |          |            |                                      |             |                 |             |                               |                               |                               |                               |                 |            |        |             |              |          | <insufficient privilege>        |
        |          | 19216 |            |          |            |                                      |             |                 |             |                               |                               |                               |                               |                 |            |        |             |              |          | <insufficient privilege>        |
(8 行记录)

pg_stat_activity 视图的字段说明如下:

类型 描述
datid oid 连接后端的数据库OID
datname name 连接后端的数据库名称
pid integer 后端进程ID
leader_pid integer 如果此进程是并行查询工作者,该值为并行组负责人进程ID;如果这个进程是并行组长或者不参与并行查询,该值为NULL。
usesysid oid 登录后端的用户OID
usename name 登录到该后端的用户名
application_name text 连接到后端的应用名
client_addr inet 连接到此后端的客户端的 IP 地址。如果此字段为空,则表明客户端是通过服务器机器上的 Unix 套接字连接的,或者这是一个内部进程,例如 autovaccum。
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 该进程的当前事务开始的时间,如果没有事务处于活动状态,则为 null。如果当前查询是其事务的第一个,则该列等于该 query_start 列。
query_start timestamp with time zone 当前活动查询开始的时间,如果 state 不是 active,则为最后一个查询开始的时间。
state_change timestamp with time zone state 上次更改的时间。
wait_event_type text 后端正在等待的事件类型(如果有);否则为空。见等待事件类型表。
wait_event text 如果后端当前正在等待,则等待事件名称, 否则为NULL。
state text 此后段的当前整体状态。可能的值为:
active 后端正在执行查询;
idle 后端正在等待新的客户端命令;
idle in transaction 后端处于事务中,但当前未执行查询;
idle in transaction (aborted) 此状态类似于 idle in trasaction,只是事务中的一条语句导致了错误;
fastpath function call 后端正在执行快速路径功能;
disabled 如果在此后端禁用 track_activities,则会报告此状态。
backend_xid xid 此后端的顶级事务标识符(如果有)
backend_xmin xid 当前后端的xmin范围
query_id bigint 此后端最近查询的标识符。如果 state 是 active 此字段显示当前正在执行的查询的标识符。在所有其他状态下,它显示最后执行的查询的标识符。默认情况下不计算查询标识符,因此该字段将为空,除非启用了 compute_query_id 参数或配置了计算查询标识符的第三方模块。
query text 此后端最近查询的文本。如果 state 是 active 此字段显示当前正在执行的查询。在所有其他状态下,它显示最后执行的查询的标识符。默认情况下,查询文本被阶段为 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,wawlsender 和 walwriter。此外,通过扩展注册的后台进程可能还有其他类型。

整理完毕,完结撒花~





参考地址:

1.postgresql中的系统视图,https://www.modb.pro/db/601572

2.PostgreSQL数据库查询监控技术——pg_stat_activity简介,https://blog.csdn.net/asmartkiller/article/details/122521516

你可能感兴趣的:(#,PostgreSQL,postgresql,数据库,服务器)