PG中的系统视图

PG中的系统视图

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

除了特别注明的,所有这里描述的视图都是只读的。

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)

1、系统视图

视图名称用途
pg_available_extensions可用的扩展
pg_available_extension_versions所有版本的扩展
pg_config编译时配置参数
pg_cursors打开的游标
pg_file_settings配置文件内容摘要
pg_group数据库用户组
pg_hba_file_rules客户端认证配置文件内容的摘要
pg_indexes索引
pg_locks当前保持或等待的锁
pg_matviesw物化视图
pg_policies策略
pg_prepared_statements预备好的语句
pg_prepared_xacts预备好的事务
pg_publication_tablespublication和它们相关的表
pg_replication_origin_status有关复制源的信息,包括复制进度
pg_replication_slots复制槽信息
pg_roles数据库角色
pg_rules规则
pg_seclabels安全标签
pg_sequences序列
pg_settings参数设置
pg_shadow数据库用户
pg_status规划器统计信息
pg_status_ext扩展的计划器统计信息
pg_tables
pg_timezone_abbrevs时区简写
pg_timezone_names时区名字
pg_user数据库用户
pg_user_mappings用户映射
pg_views视图

2、动态统计视图

视图名称描述
pg_stat_activity每个服务器进程一行,显示与那个进程的当前活动相关的信息,例如状态和当前查询
pg_stat_replication每一个WAL发送进程一行,显示有关到该发送进程,连接的后备服务器的复制的统计信息。
pg_stat_wal_receiver只有一行,显示来自wal接收器所连接服务器的有关该接收器的统计信息
pg_stat_subscription每个订阅至少一行,显示订阅工作者的相关信息,详细信息
pg_stat_ssl每个连接(常规连接和复制连接)一行,显示有关在此连接上使用的SSL的信息。
pg_stat_progress_vacuum每个vacuum的后端一行,显示当前的进度。

3、已收集统计信息的视图

视图名称描述
pg_stat_archiver只有一行,显示有关wal归档进程活动的统计信息。
pg_stat_bgwriter只有一行,显示有关后台写进程的活动的统计信息。
pg_stat_database每个数据库一行,显示数据库范围的统计信息。
pg_stat_database_conflicts每个数据库一行,显示数据库范围的统计信息,这些信息的内容是关于由于与后备服务器的恢复过程发生冲突而被取消的查询。
pg_stat_all_tables当前数据库中每个表一行,显示有关访问指定表的统计信息。
pg_stat_sys_tables和pg_stat_all_tables一样,但是只显示系统表。
pg_stat_user_tables和pg_stat_all_tables一样,但是只显示用户表。
pg_stat_xact_all_tables和pg_stat_all_tables类似,但计数动作只在当前事务内发生,用于生成和死亡行数量的列以及清理和分析动作在视图不出现。
pg_stat_xact_sys_tables和pg_stat_xact_all_tables一样,但是只显示系统表
pg_stat_xact_user_tables和pg_stat_xact_all_tables一样,但是只显示用户表
pg_stat_all_indexes当前数据库中的每个索引一行,显示:表OID、索引OID、模式、表名、索引名、使用了该所有的索引扫描总数、索引扫描返回的索引记录数、使用该索引的简单索引抓取的活表中数据行数。当前数据库中每个索引一行,显示与访问指定索引有关的统计信息
pg_stat_sys_indexes和pg_stat_all_indexes一样,但是只显示系统表上的索引。
pg_stat_user_indexes和pg_stat_all_indexes一样,但是只显示用户表上的索引。
pg_statio_all_tables当前数据库中每个表一行(包括TOAST表),显示:表OID、模式名、表名、从该表中读取的磁盘块总数、缓冲区命中次数、该表上所有索引的磁盘块读取总数、该表上所有索引的缓冲区命中总数、在该表的服务TOAST表上的磁盘块读取总数、在该表的辅助TOAST表上的缓冲区命中总数、TOAST表的索引的磁盘块读取总数、TOAST表的索引的缓冲区命中总数。当前数据库中的每个表一行,显示有关在指定表上I/O的统计信息
pg_statio_sys_tables和pg_statio_all_tables一样,但是只显示系统表。
pg_statio_user_tables和pg_statio_all_tables一样,但是只显示用户表。
pg_statio_all_indexes当前数据库中每个索引一行,显示:表OID、索引OID、模式名、表名、索引名、该索引的磁盘块读取总数、该索引的缓冲区命中总数,当前数据库中的每个索引一行,显示与指定索引上的I/O有关的统计信息。
pg_statio_sys_indexes和pg_statio_all_indexes一样,但是只显示系统表上的索引。
pg_statio_user_indexes和pg_statio_all_indexes一样,但是只显示用户表上的索引。
pg_statio_all_sequences当前数据库中每个序列对象一行,显示:序列OID、模式名、序列名、序列的磁盘读取总数、序列的缓冲区命中总数。当前数据库中的每个序列一行,显示与指定序列上的I/O有关的统计信息。
pg_statio_sys_sequences和pg_statio_all_sequences一样,但是只显示系统序列(目前没有定义系统序列,因此这个视图总是空的)。
pg_statio_user_sequences和pg_statio_all_sequences一样,但是只显示用户序列。
pg_stat_user_functions对于所有跟踪功能,显示:函数的OID、模式、名称、数量、通话总时间、自我的时间。时间值以毫秒为单位。每一个被跟踪的函数一行,显示与执行该函数有关的统计信息。
pg_stat_xact_user_functions和pg_stat_user_functions类似,但是只统计在当前事务期间的调用

4、PG中常用的系统视图

1)pg_tables

名称类型引用描述
schemanamenamepg_namespace.nspname包含表的模式名
tablenamenamepg_class.relname表名
tableownernamepg_authid.rolname表拥有者的名字
tablespacenamepg_tablespace.spcname包含表空间的名字
hasindexesbooleanpg_class.relhasindex如果表有(或最近有过)索引,此列为真
hasrulesbooleanpg_class.relhasrules如果表有(或曾经有过)规则,此列为真
hastriggersbooleanpg_class.relhastriggers如果表有(或曾经有过)触发器,此列为真
rowsecuritybooleanpg_class.relrowsecurity如果表上启用了行安全性,此列为真

2)pg_indexes

名称类型引用描述
schemanamenamepg_namespace.nspname包含表和索引的模式名
tablenamenamepg_class.relname此索引的基表的名字
indexnamenamepg_class.relname索引名
tablespacenamepg_tablespace.spcname包含索引的表空间名(如何是数据库的默认值则为空)
indexdeftext索引定义(CREATE INDEX命令的重构)

3)pg_views

名称类型引用描述
schemanamenamepg_namespace.nspname包含视图的模式名
viewnamenamepg_class,relname视图名称
viewownernamepg_authid.rolname视图拥有者的名字
definitiontext视图定义(一个重构的SELECT查询)

4)pg_user

名字类型描述
usenamename用户名
usesysidoid用户的ID
usecreatedbbool用户是否能创建数据库
usesuperbool用户是否为超级用户
usereplbool用户能否开启流复制以及将系统转入/转出备份模式。
usebypassrlsbool用户能否绕过所有的行级安全性策略,
passwdtext不是口令(总是显示为********)
valuntiltimestamptz口令过期时间(只用于口令认证)
useconfigtext[]运行时配置变量的会话默认值

5)pg_roles

名称类型引用描述
rolnamename角色名
rolsuperbool角色是否具有超级用户权限?
rolinheritbool如果此角色是另一个角色的成员,角色是否能自动继承另一个角色的权限?
rolcreaterolebool角色是否创建更多角色?
rolcreatedbbool角色是否创建数据库?
rolcanloginbool角色是否能登录?
rolreplicationbool角色是一个复制角色,复制角色可以开启复制连接并且创建和删除复制槽。
rolconlimitint4对于一个可登录的角色,这个设置角色可以发起的最大并发连接数,-1表示无限制
rolpasswordtext不是口令(看起来是********
rolvaliduntiltimestamptz口令失效时间(只用于口令认证),如果永不失效则为空
rolbypassrlsbool绕过每一条行级安全性策略的角色
rolconfigtext[]运行时配置变量的角色特定默认值
oidoidpg_authid.oid角色的ID

6)pg_rules

名称类型引用描述
schemanamenamepg_namespace.nspname包含表的模式名
tablenamenamepg_class.relname规则适用的表名
rulenamenamepg_rewrite.rulename规则名
definitiontext规则定义

7)pg_settings

名字类型描述
nametext运行时配置参数名
settingtext参数的当前值
unittext参数的隐式单元
categorytext参数的逻辑组
short_desctext参数的简短描述
extra_desctext附加的参数的详细描述
contexttext要求设置此参数值的上下文
vartypetext参数类型( bool 、 enum 、 integer 、 real 或 string )
sourcetext当前参数值的来源
min_valtext参数的最小允许值(对非数字值为空)
max_valtext参数的最大允许值(对非数字值为空)
enumvalstext[]一个枚举参数的允许值(对非数字值为空)
boot_valtext如果参数没有被别的其他设置,此列为在服务器启动时设定的参数值
reset_valtext在当前会话中, RESET 将会设置的参数值
sourcefiletext当前值被设置的配置文件(空值表示从非配置文件的其他来源设置,由不是超级用户也不是 pg_read_all_settings 成员的用户检查时也为空值),在配置文件中使用 include 指令时有用
sourcelineinteger当前值被设置的配置文件中的行号(空值表示从非配置文件的其他来源设置,由不是超级用户也不是 pg_read_all_settings 成员的用户检查时也为空值)。
pending_restartboolean如果配置文件中修改了该值但需要重启,则为 true , 否则为 false 。

8)pg_class

名称类型引用描述
oidoid行标识符
relnamename表、索引、视图等的名字
relnamespaceoidpg_namespace.oid包含该关系的名字空间的OID
reltypeoidpg_type.oid可能存在的表行类型所对应数据类型的OID(对索引为0,索引没有pg_type项)
reloftypeoidpg_type.oid对于有类型的表,为底层组合类型的OID,对于其他所有关系为0
relowneroidpg_authid.oid关系的拥有者
relamoidpg_am.oid如果这是一个表或者索引,表示索引使用的访问方法(堆、B树、哈希等)
relfilenodeoid该关系的磁盘文件的名字,0表示这是一个“映射”关系,其磁盘文件名取决于低层状态
reltablespaceoidpg_tablespace.oid该关系所存储的表空间。如果为0,使用数据库的默认表空间。(如果关系无磁盘文件时无意义)
relpagesint4该表磁盘表示的尺寸,以页面计(页面尺寸为BLCKSZ)。这只是一个由规划器使用的估计值。它被VACUUM、ANALYZE以及一些DDL命令(如CREATE INDEX)所更新。
reltuplesfloat4表中的存活行数。这只是一个由规划器使用的估计值。它被VACUUM、ANALYZE以及一些DDL命令(如CREATE INDEX)所更新。
relallvisibleint4在表的可见性映射表中被标记为全可见的页数。这只是一个由规划器使用的估计值。它被VACUUM、ANALYZE以及一些DDL命令(如CREATE INDEX)所更新。
reltoastrelidoidpg_class.oid与该表相关联的TOAST表的OID,如果没有则为0。TOAST表将大属性“线外”存储在一个二级表中。
relhasindexbool如果这是一个表并且其上建有(或最近建有)索引则为真
relissharedbool如果该表在集簇中的所有数据库间共享则为真。只有某些系统目录(如pg_database)是共享的。
relpersistencecharp = 永久表,u = 无日志表, t = 临时表
relkindcharr = 普通表, i = 索引, S = 序列, t = TOAST表, v = 视图, m = 物化视图, c = 组合类型, f = 外部表, p = 分区表, I = 分区索引
relnattsint2关系中用户列的数目(系统列不计算在内)。在pg_attribute中必须有这么多对应的项。另请参阅pg_attribute.attnum。
relchecksint2表上CHECK约束的数目,参见pg_constraint目录
relhasrulesbool如果表有(或曾有)规则则为真,参见 pg_rewrite目录
relhastriggersbool如果表有(或曾有)触发器则为真,参见 pg_trigger目录
relhassubclassbool如果表或者索引有(或曾有)任何继承子女则为真
relrowsecuritybool如果表上启用了行级安全性则为真,参见 pg_policy目录
relforcerowsecuritybool如果行级安全性(启用时)也适用于表拥有者则为真,参见 pg_policy目录
relispopulatedbool如果表已被填充则为真(对于所有关系该列都为真,但对于某些物化视图却不是)
relreplidentchar用来为行形成“replica identity”的列: d = 默认 (主键,如果存在), n = 无, f = 所有列 i = 索引的indisreplident被设置或者为默认
relispartitionbool如果表或索引是一个分区,则为真
relrewriteoidpg_class.oid对于在要求表重写的DDL操作期间被写入的新关系,这个域包含原始关系的OID,否则为0。那种状态仅在内部可见,对于一个用户可见的关系这个域应该从不包含不是0的值。
relfrozenxidxid在此之前的所有事务ID在表中已经被替换为一个永久的(“冻结的”) 事务ID。这用于跟踪表是否需要被清理,以便阻止事务ID回卷或者允许pg_xact被收缩。如果该关系不是一个表则为0(InvalidTransactionId)。
relminmxidxid在此之前的多事务ID在表中已经被替换为一个事务ID。这被用于跟踪表是否需要被清理,以阻止 多事务ID回卷或者允许pg_multixact被收缩。如果关系不是一个表则 为0(InvalidMultiXactId)。
relaclaclitem[]访问权限,更多信息参见第5.7节
reloptionstext[]访问方法相关的选项,以“keyword=value”字符串形式
relpartboundpg_node_tree如果表示一个分区(见relispartition),分区边界的内部表达
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL库的系统配置和参数设置分为几个方面。其,通过参数文件配置是一种常见的设置方式。可以通过更改文件postgresql.conf来配置参数,这些参数提供了默认值。使用pg_ctl reload命令可以使服务器重新读取配置文件。通过查询pg_FILE_settings视图可以查看参数文件配置的参数。例如,可以使用以下命令查询max_connections参数的配置: SELECT * FROM pg_FILE_settings WHERE name='max_connections'; 此外,还可以在数据库或角色级别设置全局默认值或附加重写。另外,还可以通过shell工具将参数设置传递给PostgreSQL服务器和客户端库。在服务器启动过程,可以使用-c命令行参数将参数设置传递给postgres命令。而在使用libpq启动客户端会话时,可以使用PGOPSOPTIONS环境变量指定参数设置。这些设置会成为会话生存期的默认值,但不会影响其他会话。 此外,PostgreSQL还有两个重要的全局配置文件:postgresql.conf和pg_hba.conf。这两个文件位于初始化数据目录。其postgresql.conf负责配置文件位置、资源限制、集群复制等;而pg_hba.conf负责客户端的连接和认证。 综上所述,PostgreSQL库的系统配置和参数设置可以通过参数文件配置、数据库或角色级别设置、shell工具传递参数以及全局配置文件进行管理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Postgresql服务器配置-设置参数](https://blog.csdn.net/weixin_34038293/article/details/89551549)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [PostgreSQL数据库管理 第四章数据库参数配置](https://blog.csdn.net/syjhct/article/details/104743053)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值