kinbaseES数据字典SYS_CLASS

本文详细解析了PostgreSQL数据库系统中的sys_class表,探讨了其中的列含义,涵盖了关系对象如表、索引、视图等的元数据,以及表的逻辑标志和并发性优化策略。
摘要由CSDN通过智能技术生成

目录sys_class记录表和几乎所有具有列或者像表的东西。这包括索引(但还要参见sys_index)、序列(但还要参见sys_sequence)、视图、物化视图、组合类型和TOAST表,参见relkind。下面,当我们提及所有这些类型的对象时我们使用“关系”。并非所有列对于所有关系类型都有意义。

表 3.1.57 sys_class列

名称

类型

引用

描述

oid

oid

行标识符

relname

name

表、索引、视图等的名字

relnamespace

oid

sys_namespace.oid

包含该关系的名字空间的OID

reltype

oid

sys_type.oid

可能存在的表行类型所对应数据类型的OI D(对索引为0,索引没有sys_type项)

reloftype

oid

sys_type.oid

对于有类型的表,为底层组合类型的OID,对于其他所有关系为0

relowner

oid

sys_authid.oid

关系的拥有者

relam

oid

sys_am.oid

如果这是一个表或索引,表或索引使用的访问方法(heap、 B树、哈希等)

relfilenode

oid

该关系的磁盘文件的名字,0表示这是一个“映射”关系,其磁盘文件名取决于低层状态

reltablespace

oid

sys_tablespace.oid

该关系所存储的表空间。如果为0 ,使用数据库的默认表空间。(如果关系无磁盘文件时无意义)

relpages

integer

该表磁盘表示的尺寸,以页面计(页面尺寸为BLCKSZ )。这只是一个由规划器使用的估计值。它被 VACUUM 、ANALYZE 以及一些 DDL命令(如 CREATE INDEX )所更新。

reltuples

real

表中的存活行数。这只是一个由规划器使用的估计值。它被 VACUUM 、ANALYZE 以及一些 DDL命令(如 CREATE INDEX )所更新。

relallvisible

integer

在表的可见性映射表中被标记为全可见的页数。这只是一个由规划器使用的估计值。它被 VACUUM 、ANALYZE 以及一些 DDL命令(如 CREATE INDEX )所更新。

reltoastrelid

oid

sys_class.oid

与该表相关联的TO AST表的OID,如果没有则为0。 TOAST表将大属性“线外”存储在一个二级表中。

relhasindex

boolean

如果这是一个表并且其上建有(或最近建有)索引则为真

relisshared

boolean

如果该表在集簇中的所有数据库间共享则为真。只有某些系统目录(如sys_database )是共享的。

relpersistence

char

p = 永久表,u = 无日志表, t = 临时表

relkind

char

r = 普通表, i = 索引, S = 序列, t = TOAST表, v = 视图, m = 物化视图, c = 组合类型, f = 外部表, p = 分区表, I = 分区索引

relnatts

smallint

关系中用户列的数目(系统列不计算在内)。在 sys_attribute中必须有这么多对应的项。另请参阅sys_attribute.attnum

relchecks

smallint

表上CHECK 约束的数目,参见 sys_constraint 目录

relhasoids

boolean

如果为关系的每一行生成一个OID则为真

relhasrules

boolean

如果表有(或曾有)规则则为真,参见 sys_rewrite 目录

relhastriggers

boolean

如果表有(或曾有)触发器则为真,参见 sys_trigger 目录

relhassubclass

boolean

如果表或索引有(或曾有)任何继承子女则为真

relrowsecurity

boolean

如果表上启用了行级安全性则为真,参见 sys_policy 目录

relforcerowsecurity

boolean

如果行级安全性(启用时)也适用于表拥有者则为真,参见 sys_policy 目录

relispopulated

boolean

如果表已被填充则为真(对于所有关系该列都为真,但对于某些物化视图却不是)

relreplident

char

用来为行形成“replica i dentity”的列: d = 默认 (主键,如果存在), n = 无, f = 所有列 i = 索引的indisreplident被设置或者为默认

relispartition

boolean

如果表或索引是一个分区,则为真

relrewrite

oid

sys_class.oid

对于在要求表重写的DDL操作期间被写入的新关系,这个域包含原始关系的OID,否则为0。那种状态仅在内部可见,对于一个用户可见的关系这个域应该从不包含不是0的值。

relfrozenxid

xid

在此之前的所有事务 ID在表中已经被替换为一个永久的(“冻结的”) 事务ID 。这用于跟踪表是否需要被清理,以便阻止事务 ID回卷或者允许 sys_xact 被收缩。如果该关系不是一个表则为0( InvalidTransactionId)。

relminmxid

xid

在此之前的多事务ID在表中已经被替换为一个事务ID。这被用于跟踪表是否需要被清理,以阻止多事务ID回卷或者允许sys_multixact被收缩。如果关系不是一个表则为0(InvalidMultiXactId )。

relacl

aclitem[]

访问权限

reloptions

text[]

访问方法相关的选项,以“keyword=va lue”字符串形式

relpartbound

pg_node_tree

如果表示一个分区(见relispartition ),分区边界的内部表达

sys_class中的一些逻辑标志被以一种懒惰的方式维护:在正确状态时它们被保证为真,但是当条件不再为真时它们并不会被立刻重置为假。例如,relhasindexCREATE INDEX设置,但它从不会被DROP INDEX清除。作为替代,VACUUM会在找到无索引表后清除其relhasindex。这种安排避免了竞争条件并且提高了并发性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值