一、系统视图
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;
<insufficient privilege> 表示当前用户没有权限,除超级用户外,一般用户只能查询到自己数据库下的相关查询语句。
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文章来源:https://www.toymoban.com/news/detail-491941.html
2.PostgreSQL数据库查询监控技术——pg_stat_activity简介,https://blog.csdn.net/asmartkiller/article/details/122521516文章来源地址https://www.toymoban.com/news/detail-491941.html
到了这里,关于PostgreSQL(九)内置系统视图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!