系统结构

1.系统目录

系统目录是关系型数据库管理系统存储模式元数据的地方,例如有关表和列的信息以及内部簿记信息。 UXsinoDB的系统目录是常规表。您可以删除和重新创建表,添加列,插入和更新值,并以这种方式严重破坏系统。通常,不应手动更改系统目录,通常有SQL 命令来执行此操作。(例如,CREATE DATABASE 将一行插入到 ux_database 目录中 -并实际上在磁盘上创建数据库。)对于特别奇特的操作有一些例外情况,但其中许多已经随着时间的推移作为 SQL命令提供,因此直接操作系统目录的需求越来越少。

概述

系统目录列出了系统目录。下面是每个目录的详细文档。

大多数系统目录在数据库创建期间从模板数据库复制,并且此后是特定于数据库的。少数目录在整个集群中的所有数据库中共享;这些在各个目录的描述中有所说明。

系统目录

目录名称目的
ux_aggregate聚合函数
ux_am关系访问方法
ux_amop访问方法操作符
ux_amproc访问方法支持函数
ux_attrdef列默认值
ux_attribute表列(“属性”)
ux_authid授权标识符(角色)
ux_auth_members授权标识符成员关系
ux_cast转换(数据类型转换)
ux_class表、索引、序列、视图(“关系”)
ux_collation排序规则(区域设置信息)
ux_constraint检查约束、唯一约束、主键约束、外键约束
ux_conversion编码转换信息
ux_database此数据库群集中的数据库
ux_db_role_setting每个角色和每个数据库的设置
ux_default_acl对象类型的默认权限
ux_depend数据库对象之间的依赖关系
ux_description数据库对象的描述或注释
ux_enum枚举标签和值定义
ux_event_trigger事件触发器
ux_extension已安装的扩展
ux_foreign_data_wrapper外部数据包装器定义
ux_foreign_server外部服务器定义
ux_foreign_table附加的外部表信息
ux_index附加的索引信息
ux_inherits表继承层次结构
ux_init_privs对象初始权限
ux_job存储DBMS_JOB定时任务的相关信息
ux_job_proc对应ux_job表中每个任务的作业内容
ux_language用于编写函数的语言
ux_largeobject大对象的数据页
ux_largeobject_metadata大对象的元数据
ux_namespace模式
ux_opclass访问方法操作符类
ux_operator操作符
ux_opfamily访问方法操作符族
ux_parameter_acl已授予权限的配置参数
ux_partitioned_table关于表的分区键的信息
ux_policy行安全策略
ux_proc函数和过程
ux_publication逻辑复制的发布
ux_publication_namespace模式到发布的映射
ux_publication_rel关系到发布的映射
ux_queue关于范围类型的信息
ux_queue_table关于范围类型的信息
ux_range关于范围类型的信息
ux_replication_origin已注册的复制源
ux_rewrite查询重写规则
ux_seclabel数据库对象的安全标签
ux_sequence关于序列的信息
ux_shdepend共享对象的依赖关系
ux_shdescription共享对象的注释
ux_shseclabel共享数据库对象的安全标签
ux_statistic规划器统计信息
ux_statistic_ext扩展规划器统计信息(定义)
ux_statistic_ext_data扩展规划器统计信息(数据)
结构名称描述
ux_statistic_ext_data扩展查询统计信息(构建统计信息)
ux_subscription逻辑复制订阅
ux_subscription_rel订阅的关系状态
ux_tablespace此数据库集群中的表空间
ux_transform转换(数据类型到过程语言的转换)
ux_trigger触发器
ux_ts_config文本搜索配置
ux_ts_config_map文本搜索配置的标记映射
ux_ts_dict文本搜索词典
ux_ts_parser文本搜索解析器
ux_ts_template文本搜索模板
ux_type数据类型
ux_user_mapping用户到外部服务器的映射

### ux_aggregate

目录ux_aggregate存储有关聚合函数的信息。聚合函数是一种函数,它对一组值(通常是匹配查询条件的每行的一个列)进行操作,并从所有这些值计算出单个值。典型的聚合函数包括sumcountmax。在ux_aggregate中的每个条目都是ux_proc条目的扩展。ux_proc条目携带聚合的名称、输入和输出数据类型以及其他类似于普通函数的信息。

ux_aggregate

列类型
描述
aggfnoid
regproc
(引用
ux_proc
.
oid
)
聚合函数的
ux_proc
OID
aggkind
char
聚合类型:n表示“普通”聚合,o表示“有序集”聚合,或h表示“假设集”聚合
aggnumdirectargs
int2
有序集或假设集聚合的直接(非聚合)参数数量,将可变数组视为一个参数。如果等于
pronargs
,则聚合必须是可变参数的,可变数组描述了聚合参数以及最终的直接参数。对于普通聚合,始终为零
aggtransfn
regproc
(引用
ux_proc
.
oid
)
转换函数
aggfinalfn
regproc
(引用
ux_proc
.
oid
)
最终函数(如果没有则为零)
aggcombinefn
regproc
(引用
ux_proc
.
oid
)
组合函数(如果没有则为零)
aggserialfn
regproc
(引用
ux_proc
.
oid
)
序列化函数(如果没有则为零)
aggdeserialfn
regproc
(引用
ux_proc
.
oid
)
反序列化函数(如果没有则为零)
aggmtransfn
regproc
(引用
ux_proc
.
oid
)
用于移动聚合模式的前向转换函数(如果没有则为零)
aggminvtransfn
regproc
(引用
ux_proc
.
oid
)
用于移动聚合模式的反向转换函数(如果没有则为零)
aggmfinalfn
regproc
(引用
ux_proc
.
oid
)
用于移动聚合模式的最终函数(如果没有则为零)
aggfinalextra
bool

aggfinalfn
传递额外的虚拟参数则为True
aggmfinalextra
bool

aggmfinalfn
传递额外的虚拟参数则为True
aggfinalmodify
char
aggfinalfn
是否修改转换状态值:r表示只读,s表示在
aggfinalfn
之后无法应用
aggtransfn
,w表示写入
aggmfinalmodify
char

aggfinalmodify
类似,但用于
aggmfinalfn
aggsortop
oid
(引用
ux_operator
.
oid
)
相关联的排序操作符(如果没有则为零)
aggtranstype
oid
(引用
ux_type
.
oid
)
聚合函数内部转换(状态)数据的数据类型
aggtransspace
int4
转换状态数据的近似平均大小(以字节为单位),如果为零,则使用默认估计值
aggmtranstype
oid
(引用
ux_type
.
oid
)
移动聚合模式下聚合函数内部转换(状态)数据的数据类型(如果没有则为零)
aggmtransspace
int4
移动聚合模式下转换状态数据的近似平均大小(以字节为单位),如果为零,则使用默认估计值
agginitval
text
转换状态的初始值。这是一个文本字段,包含其外部字符串表示中的初始值。如果此字段为
null
,则转换状态值起始为
null
aggminitval
text
移动聚合模式下转换状态的初始值。这是一个文本字段,包含其外部字符串表示中的初始值。如果此字段为
null
,则转换状态值起始为
null

使用CREATE AGGREGATE命令注册新的聚合函数。

### ux_am

目录ux_am存储有关关系访问方法的信息。系统支持的每种访问方法都有一行。目前,只有表和索引有访问方法。

ux_am

列类型
描述
oid
oid
行标识符
amname
name
访问方法的名称
amhandler
regproc
(引用
ux_proc
.
oid
)
负责提供有关访问方法信息的处理程序函数的OID
amtype
char
t = 表(包括物化视图),i = 索引

注意

已添加函数以允许 SQL 查询检查索引访问方法属性。

### ux_amop

目录ux_amop存储与访问方法操作符族相关的操作符信息。每个操作符族的成员都有一行。成员可以是搜索操作符或排序操作符。操作符可以出现在多个族中,但不能在一个族中出现在多个搜索位置或排序位置。(虽然不太可能,但允许一个操作符同时用于搜索和排序目的。)

ux_amop

列类型
描述
oid
oid
行标识符
amopfamily
oid
(引用
ux_opfamily
.
oid

此条目所属的操作符族
amoplefttype
oid
(引用
ux_type
.
oid

操作符的左输入数据类型
amoprighttype
oid
(引用
ux_type
.
oid

操作符的右输入数据类型
amopstrategy
int2
操作符策略编号
amoppurpose
char
操作符用途,s表示搜索,o表示排序
amopopr
oid
(引用
ux_operator
.
oid
)
操作符的 OID
amopmethod
oid
(引用
ux_am
.
oid
)
索引访问方法操作符族所属的 OID
amopsortfamily
oid
(引用
ux_opfamily
.
oid
)
如果是排序操作符,则此条目按照 B-tree 操作符族进行排序;如果是搜索操作符,则为零

“搜索”操作符条目表示可以搜索此操作符族的索引以查找满足 WHERE indexed_column operator constant 的所有行。显然,这样的操作符必须返回boolean,其左侧输入类型必须与索引的列数据类型匹配。

“排序”操作符条目表示可以扫描此操作符族的索引以按照 ORDER BY indexed_column operator constant 所表示的顺序返回行。这样的操作符可以返回任何可排序的数据类型,但是其左侧输入类型必须与索引的列数据类型匹配。amopsortfamily 列指定了 ORDER BY 的确切语义,必须引用操作符结果类型的 B-tree 操作符族。

注意

目前,假定排序操作符的排序顺序是引用操作符族的默认顺序,即 ASC NULLS LAST。将来可能通过添加其他列来明确指定排序选项来放宽此限制。

条目的 amopmethod 必须与其包含的操作符族的 opfmethod 匹配(包括在此处使用 amopmethod是为了性能原因而进行的意向性去规范化目录结构)。此外,amoplefttypeamoprighttype 必须与引用的ux_operator 条目的oprleftoprright 字段匹配。

ux_amproc

目录ux_amproc存储与访问方法操作符族相关的支持函数信息。每个操作符族的支持函数都有一行。

ux_amproc

列类型
描述
oid
oid
行标识符
amprocfamily
oid
(引用
ux_opfamily
.
oid
)
此条目所属的操作符族
amproclefttype
oid
(引用
ux_type
.
oid
)
相关操作符的左侧输入数据类型
amprocrighttype
oid
(引用
ux_type
.
oid
)
相关操作符的右侧输入数据类型
amprocnum
int2
支持函数编号
amproc
regproc
(引用
ux_proc
.
oid
)
函数的OID

amproclefttypeamprocrighttype字段的通常解释是它们标识特定支持函数支持的运算符的左侧和右侧输入类型。对于某些访问方法,它们与支持函数本身的输入数据类型匹配,而对于其他访问方法则不匹配。对于索引,有一个“默认”支持函数的概念,它们的amproclefttypeamprocrighttype都等于索引运算符类的opcintype

ux_attrdef

目录ux_attrdef存储列的默认值。列的主要信息存储在ux_attribute中。只有明确设置了默认值的列才会在此处有条目。

ux_attrdef

列类型
描述
oid
oid
行标识符
adrelid
oid
(引用
ux_class
.
oid
)
该列所属的表
adnum
int2
(引用
ux_attribute
.
attnum
)
列的编号
adbin
ux_node_tree
列的默认值,以
nodeToString()
表示。使用
ux_get_expr(adbin, adrelid)
将其转换为SQL表达式

ux_attribute

目录ux_attribute存储有关表列的信息。在数据库中,每个表中的每个列都将恰好有一行ux_attribute。(索引也将有属性条目,事实上所有具有ux_class条目的对象。)

属性一词相当于列,并出于历史原因而使用。

ux_attribute

列类型
描述
attrelid
oid
(引用
ux_class
.
oid

该列所属的表
attname
name
列名
atttypid
oid
(引用
ux_type
.
oid

此列的数据类型(删除的列为零)
attstattarget
int4
attstattarget
通过
ANALYZE
控制此列的统计信息的详细程度。零值表示不应收集任何统计信息。负值表示使用系统默认统计目标。正值的确切含义取决于数据类型。对于标量数据类型,
attstattarget
既是要收集的“最常见值”的目标数量,也是要创建的直方图bin的目标数量
attlen
int2
该列类型的
ux_type.typlen
的副本
attnum
int2
列的编号。普通列从1开始编号。系统列(如
ctid
)有(任意的)负数
attndims
int4
如果该列是数组类型,则为其维数;否则为0。(目前,数组的维数没有被强制执行,因此任何非零值实际上意味着“它是一个数组”。)
attcacheoff
int4
在存储中始终为-1,但在加载到内存中的行描述符中时,可能会更新为缓存属性在行内的偏移量
atttypmod
int4
atttypmod
记录在表创建时提供的特定于类型的数据(例如,
varchar
列的最大长度)。它被传递给特定于类型的输入函数和长度强制函数。对于不需要
atttypmod
的类型,该值通常为-1
attbyval
bool
该列类型的
ux_type.typbyval
的副本
attalign
char
该列类型的
ux_type.typalign
的副本
attstorage
char
通常是该列类型的
ux_type.typstorage
的副本。对于可TOAST的数据类型,可以在列创建后更改此设置以控制存储策略
attcompression
char
该列的当前压缩方法。通常这是
'\0'
,以指定使用当前默认设置。否则,
'p'
选择uxlz压缩,而
'l'
选择
LZ4
压缩。但是,当
attstorage
不允许压缩时,将忽略此字段
attnotnull
bool
这表示非空约束
atthasdef
bool
该列具有默认表达式或生成表达式,此时将在
ux_attrdef
中有相应的条目。
ux_attrdef
目录实际上定义了表达式。(检查
attgenerated
来确定这是默认值还是生成表达式。)
atthasmissing
bool
当行中完全缺少该列时(例如在行创建后添加具有非易失性的
DEFAULT
值的列时),此列具有一个值,该值将被使用。实际使用的值存储在
attmissingval
列中
attidentity
char
如果是零字节(
''
),则不是标识列。否则,a = 总是生成,d = 默认生成
attgenerated
char
如果是零字节(
''
),则不是生成的列。否则,s = 存储。(将来可能会添加其他值。)
attisdropped
bool
此列已被删除并且不再有效。删除的列仍然在表中物理存在,但被解析器忽略,因此无法通过 SQL 访问
attislocal
bool
此列在关系中本地定义。请注意,列可以同时本地定义和继承
attinhcount
int4
该列的直接祖先数。具有非零祖先数的列无法删除或重命名
attcollation
oid
(引用
ux_collation
.
oid

该列的定义排序规则,如果该列不是可排序数据类型,则为零
attacl
aclitem[]
如果已经在此列上明确授予了列级访问权限,则为该列级访问权限
attoptions
text[]
属性级选项,作为“
keyword=value
”字符串
attfdwoptions
text[]
属性级外部数据包装器选项,作为“
keyword=value
”字符串
attmissingval
anyarray
此列具有一个包含一个元素的数组,该元素是在行中完全缺少该列时使用的值,例如在行创建后添加具有非易失性的
DEFAULT
值的列时。只有在使用
DEFAULT
值添加列后,才使用该值。
atthasmissing
为 true。如果没有值,则该列为 null

在已删除的列的 ux_attribute 条目中,atttypid 被重置为零,但是从ux_type 复制的 attlen和其他字段仍然有效。这种安排是必要的,以应对删除列的数据类型后来被删除的情况,因此不再有 ux_type行。可以使用 attlen 和其他字段来解释表中一行的内容。

ux_authid

目录ux_authid包含有关数据库授权标识符(角色)的信息。一个角色包含了“用户”和“组”的概念。用户本质上只是一个设置了rolcanlogin标志的角色。任何角色(有或没有rolcanlogin)都可以有其他角色作为成员,请参见ux_auth_members

由于此目录包含密码,因此不得公开读取。ux_roles是对ux_authid的公开可读视图,其中密码字段被清空。

由于用户身份是整个集群范围内的,因此ux_authid在集群的所有数据库之间共享:每个集群只有一个ux_authid副本,而不是每个数据库一个。

ux_authid

列类型
描述
oid
oid
行标识符
rolname
name
角色名称
rolsuper
bool
角色具有超级用户特权
rolinherit
bool
角色自动继承其成员角色的权限
rolcreaterole
bool
角色可以创建更多的角色
rolcreatedb
bool
角色可以创建数据库
rolcanlogin
bool
角色可以登录。也就是说,该角色可以作为初始会话授权标识符
rolreplication
bool
角色是复制角色。复制角色可以启动复制连接并创建和删除复制插槽
rolbypassrls
bool
角色绕过每个行级安全策略
rolconnlimit
int4
对于可以登录的角色,这将设置该角色可以进行的并发连接的最大数量。-1表示没有限制
rolpassword
text
密码(可能已加密);如果没有则为null。格式取决于所使用的加密形式
rolvaliduntil
timestamptz
密码过期时间(仅用于密码身份验证);如果没有过期,则为null

对于MD5加密的密码,rolpassword列将以字符串md5开头,后跟32个十六进制MD5哈希值。MD5哈希值将是用户密码连接到其用户名的结果。例如,如果用户joe的密码为xyzzy,UXsinoDB将存储xyzzyjoe的md5哈希值。

如果使用SCRAM-SHA-256加密密码,则其格式为:

SCRAM-SHA-256$<iteration count>:<salt>$<StoredKey>:<ServerKey>

其中 saltStoredKeyServerKey 以Base64编码格式表示。此格式与RFC 5803指定的格式相同。

不遵循这两种格式的密码被认为是未加密的。

ux_auth_members

目录ux_auth_member显示角色之间的成员关系。允许任何非循环关系集。

因为用户标识是集群范围的,所以ux_auth_member在集群的所有数据库之间共享:每个集群只有一个ux_auth_member副本,而不是每个数据库一个。

列类型
描述
roleid
oid
(引用
ux_authid
.
oid
)
拥有成员的角色的ID
member
oid
(引用
ux_authid
.
oid
)
roleid
的成员角色的ID
grantor
oid
(引用
ux_authid
.
oid
)
授权此成员关系的角色的ID
admin_option
bool
如果
member
能把
roleid
的成员关系授予他人,则为真

ux_cast

目录ux_cast存储数据类型转换路径,包括内置和用户定义的。

需要注意的是,ux_cast并不代表系统知道如何执行的每种类型转换;只有那些不能从某些通用规则推导出来的类型转换。例如,在ux_cast中没有明确表示在域和其基本类型之间进行转换。另一个重要的例外是,使用数据类型自己的I/O函数执行的“自动I/O转换转换”,以将其转换为或从text或其他字符串类型,不在ux_cast中明确表示。

ux_cast

列类型
描述
oid
oid
行标识符
castsource
oid
(引用
ux_type
.
oid
)
源数据类型的OID
casttarget
oid
(引用
ux_type
.
oid
)
目标数据类型的OID
castfunc
oid
(引用
ux_proc
.
oid
)
执行此转换所使用的函数的 OID。如果转换方法不需要函数,则存储零
castcontext
char
指示可以在哪些上下文中调用转换。e表示仅作为显式转换(使用
CAST

::
语法)。a表示隐式赋值 到目标列,以及显式赋值。i表示在表达式中隐式使用,以及其他情况
castmethod
char
指示如何执行转换。f表示使用
castfunc
字段中指定的函数。i表示使用输入/输出函数。b表示类型是二进制可强制转换的,因此不需要转换

ux_cast 中列出的转换函数必须 始终将转换源类型作为其第一个参数类型,并将将转换目标类型作为其结果类型返回。转换函数最多可以有三个参数。如果存在第二个参数,则必须是类型 integer;它接收类型与目标类型关联的类型修饰符,或-1 如果没有。如果存在第三个参数,则必须是类型boolean;它接收 true 如果转换是显式转换,则为 false

如果相关联的函数需要多个参数,则创建 ux_cast 条目 其中源类型和目标类型相同是合法的。 这样的条目表示“长度强制转换函数”,将类型的值强制转换为 对于特定类型修饰符值合法。

ux_cast 条目具有不同的源和 目标类型和需要多个参数的函数时,它表示从一种类型转换到另一种类型并应用长度在单个步骤中进行强制转换。如果没有这样的条目,则强制转换到使用类型修饰符的类型涉及两个步骤,一个用于在数据类型之间进行转换,第二个用于应用修饰符。

ux_class

目录ux_class记录了表和大多数其他具有列或类似表的对象。这包括索引(但请参见ux_index)、序列(但请参见ux_sequence)、视图、物化视图、复合类型和TOAST表。下面,当我们指的是所有这些类型的对象时,我们称之为“关系”。并非所有列对于所有关系类型都有意义。

ux_class

名称类型引用描述
oidoid 行标识符
relnamename 表、索引、视图等的名字
relnamespaceoidux_namespace
.oid
包含该关系的名字空间的OID
reltypeoidux_type
.oid
可能存在的表行类型所对应数据类型的OID(对索引为0,索引没有
ux_type
项)
reloftypeoidux_type
.oid
对于有类型的表,为底层组合类型的OID,对于其他所有关系为0
relowneroidux_authid
.oid
关系的拥有者
relamoidux_am
.oid
如果这是一个表或者索引,表示索引使用的访问方法(堆、B树、哈希等)
relfilenodeoid 该关系的磁盘文件的名字,0表示这是一个

映射

关系,其磁盘文件名取决于低层状态
reltablespaceoidux_tablespace
.oid
该关系所存储的表空间。如果为0,使用数据库的默认表空间。(如果关系无磁盘文件时无意义)
relpagesint4 该表磁盘表示的尺寸,以页面计(页面尺寸为
BLCKSZ
)。这只是一个由规划器使用的估计值。它被
VACUUM

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

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

ANALYZE
以及一些DDL命令(如
CREATE INDEX
)所更新。
reltoastrelidoidux_class
.oid
与该表相关联的TOAST表的OID,如果没有则为0。TOAST表将大属性

线外

存储在一个二级表中。
relhasindexbool 如果这是一个表并且其上建有(或最近建有)索引则为真
relissharedbool 如果该表在集簇中的所有数据库间共享则为真。只有某些系统目录(如
ux_database
)是共享的。
relpersistencechar p = 永久表,u = 无日志表,
t = 临时表
relkindchar r = 普通表,
i = 索引,
S = 序列,
t = TOAST表,
v = 视图,
m = 物化视图,
c = 组合类型,
f = 外部表,
p = 分区表,
I = 分区索引
relnattsint2 关系中用户列的数目(系统列不计算在内)。在
ux_attribute
中必须有这么多对应的项。另请参阅
ux_attribute.attnum
relchecksint2 表上
CHECK
约束的数目
relhasrulesbool 如果表有(或曾有)规则则为真
relhastriggersbool 如果表有(或曾有)触发器则为真
relhassubclassbool 如果表或者索引有(或曾有)任何继承子女则为真
relrowsecuritybool 如果表上启用了行级安全性则为真
relforcerowsecuritybool 如果行级安全性(启用时)也适用于表拥有者则为真
relispopulatedbool 如果表已被填充则为真(对于所有关系该列都为真,但对于某些物化视图却不是)
relreplidentchar 用来为行形成

replica identity

的列:
d = 默认 (主键,如果存在),
n = 无,
f = 所有列
i = 索引的
indisreplident
被设置或者为默认
relispartitionbool 如果表或索引是一个分区,则为真
relrewriteoidux_class
.oid
对于在要求表重写的DDL操作期间被写入的新关系,这个域包含原始关系的OID,否则为0。那种状态仅在内部可见,对于一个用户可见的关系这个域应该从不包含不是0的值。
relfrozenxidxid 在此之前的所有事务ID在表中已经被替换为一个永久的(

冻结的

) 事务ID。这用于跟踪表是否需要被清理,以便阻止事务ID回卷或者允许
ux_xact
被收缩。如果该关系不是一个表则为0(
InvalidTransactionId
)。
relminmxidxid 在此之前的多事务ID在表中已经被替换为一个事务ID。这被用于跟踪表是否需要被清理,以阻止
多事务ID回卷或者允许
ux_multixact
被收缩。如果关系不是一个表则
为0(
InvalidMultiXactId
)。
relaclaclitem[] 访问权限
reloptionstext[] 访问方法相关的选项,以

keyword=value

字符串形式
relpartboundux_node_tree 如果表示一个分区(见
relispartition
),分区边界的内部表达

ux_class中的几个布尔标志是惰性维护的: 如果这是正确的状态,则保证为true,但是当条件不再为真时可能不会立即重置为false。例如,relhasindexCREATE INDEX设置, 但是它永远不会被DROP INDEX清除。相反,VACUUM会清除relhasindex,如果它发现表没有索引。这种安排避免了竞争条件并提高了并发性。

ux_collation

目录ux_collation描述了可用的排序规则,它们本质上是从SQL名称到操作系统区域设置类别的映射。

ux_collation

列类型
描述
oid
oid
行标识符
collname
name
排序规则名称(每个命名空间和编码唯一)
collnamespace
oid
(引用
ux_namespace
.
oid

包含此排序规则的命名空间的OID
collowner
oid
(引用
ux_authid
.
oid

排序规则的所有者
collprovider
char
排序规则的提供者:d = 数据库默认值,c = libc,i = icu
collisdeterministic
bool
排序规则是否确定性的
collencoding
int4
排序规则适用的编码,如果适用于任何编码,则为-1
collcollate
text
此排序规则对象的
LC_COLLATE
collctype
text
此排序规则对象的
LC_CTYPE
colliculocale
text
此排序规则对象的ICU语言环境ID
collversion
text
排序规则的提供者特定版本。在创建排序规则时记录此版本,然后在使用时检查它,以检测可能导致数据损坏的排序规则定义的更改

请注意,此目录的唯一键是(collnamecollencodingcollnamespace),而不仅仅是(collnamecollnamespace)。UXsinoDB通常忽略所有排序规则,除非collencoding等于当前数据库的编码或-1,并且禁止创建与collencoding=-1的条目具有相同名称的新条目。因此,使用限定的SQL名称(schema.name)足以标识排序规则,即使根据目录定义,这不是唯一的。定义目录的原因是initdb在集群初始化时使用所有可用于系统的语言环境填充它,因此它必须能够保存可能在集群中使用的所有编码的条目。

template0数据库中,创建编码与数据库编码不匹配的排序规则可能很有用,因为它们可以与稍后从template0克隆的数据库的编码匹配。目前必须手动完成此操作。

ux_constraint

目录ux_constraint存储表上的检查、主键、唯一、外键和排除约束条件。(列约束条件不会被特殊处理。每个列约束条件都等同于某个表约束条件。)非空约束条件在ux_attribute目录中表示,而不是在这里。

用户定义的约束条件触发器(使用CREATE CONSTRAINT TRIGGER创建)也会在此表中生成一个条目。

此处还存储域上的检查约束条件。

ux_constraint

列类型
描述
oid
oid
行标识符
conname
name
约束名称(不一定唯一!)
connamespace
oid
(
ux_namespace
.
oid
)
包含此约束的名称空间的
contype
char
c=检查约束,f=外键约束,p=主键约束,u=唯一约束,t=约束触发器,x=排除约束
condeferrable
bool
约束是否可以延期
condeferred
bool
约束是否默认延迟
convalidated
bool
该约束是否得到验证?目前,只能对外键和检查约束进行错误处理
conrelid
oid
(引用
ux_class
.
oid
)
此约束在表上;如果不是表约束,则为零
contypid
oid
(引用
ux_type
.
oid
)
该约束的域;如果不是域约束,则为0
conindid
oid
(引用
ux_class
oid
)
支持此约束的索引,如果它是唯一的、主键、外键或排除约束;
conparentid
oid
(引用
ux_constraint
.
oid
)
父分区表的相应约束,如果这是对分区的约束;否则为0
confrelid
oid
(引用
ux_class
.
oid
)
如果是外键,则引用表;否则为0
confupdtype
char
外键更新动作代码: a = 无动作, r = 限制, c = 级联, n = 置空, d = 置为默认值
confdeltype
char
外键删除动作代码: a = 无动作, r = 限制, c = 级联, n = 置空, d = 置为默认值
confmatchtype
char
外键匹配类型: f = 完全, p = 部分, s = 简单
conislocal
bool
这个约束是为关系在本地定义的。请注意,可以同时在本地定义和继承约束
coninhcount
int4
这个约束有直接遗传祖先的数量。具有非零祖先数的约束不能删除或重新命名
connoinherit
bool
这个约束是为关系在本地定义的。它是一种不可遗传的约束
conkey
int2[]
(引用
ux_attribute
.
attnum
)
如果表约束(包括外键,但不包括约束触发器),则受约束列列表
confkey
int2[]
(引用
ux_attribute
.
attnum
)
如果是外键,则引用列的列表
conpfeqop
oid[]
(引用
ux_operator
.
oid
)
如果是外键,则用于PK=FK比较的相等操作符列表
conppeqop
oid[]
(引用
ux_operator
.
oid
)
如果是外键,则用于PK=PK比较的相等操作符列表
conffeqop
oid[]
(引用
ux_operator
.
oid
)
如果是外键,则FK=FK的相等操作符列表
confdelsetcols
int2[]
(引用
ux_attribute
.
attnum
)
如果一个外键
SET NULL

SET DEFAULT
删除将更新的列“行动”。如果是空,则所有引用列都将被更新
conexclop
oid[]
(引用
ux_operator
.
oid
)
如果有排除约束,则每个列排除操作符的列表
conbin
ux_node_tree
如果检查约束,则表达式的内部表示形式。(建议使用
ux_get_constraintdef()
提取检查约束的定义。)

在排除约束的情况下,conkey 仅对简单列引用的约束元素有用。对于其他情况,conkey中会出现零,并且必须查询相关索引以发现受到约束的表达式。(因此,conkey 具有与索引ux_index.indkey 相同的内容。)

注意

ux_class.relchecks 需要与此表中找到的每个关系的检查约束条目数量相匹配。

ux_conversion

目录ux_conversion描述了编码转换函数。

ux_conversion

列类型
描述
oid
oid
行标识符
conname
name
转换名称(在命名空间内唯一)
connamespace
oid
(引用
ux_namespace
.
oid

包含此转换的命名空间的OID
conowner
oid
(引用
ux_authid
.
oid

转换的所有者
conforencoding
int4
源编码ID(
ux_encoding_to_char()
可以将此数字转换为编码名称)
contoencoding
int4
目标编码 ID(
ux_encoding_to_char()
可以将此数字转换为编码名称)
conproc
regproc
(引用
ux_proc
.
oid

转换函数
condefault
bool
如果这是默认转换,则为 True

ux_database

目录ux_database存储有关可用数据库的信息。使用CREATE DATABASE命令创建数据库。

与大多数系统目录不同,ux_database在整个集群的所有数据库之间共享:每个集群只有一个ux_database副本,而不是每个数据库一个。

ux_database

列类型
描述
oid
oid
行标识符
datname
name
数据库名称
datdba
oid
(引用
ux_authid
.
oid
)
数据库所有者,通常是创建它的用户
encoding
int4
此数据库的字符编码 (
ux_encoding_to_char()
可以将此数字转换为编码名称)
datlocprovider
char
该数据库的区域设置提供程序:c = libc,i = icu
datistemplate
bool
如果为true,则任何具有
CREATEDB
特权的用户都可以克隆此数据库;如果为false,则只有超级用户或数据库所有者可以克隆它
datallowconn
bool
如果为false,则没有人可以连接到此数据库。这用于保护
template0
数据库免受更改
datconnlimit
int4
设置可以同时连接到此数据库的最大并发连接数。-1表示没有限制
datfrozenxid
xid
在此之前的所有事务ID都已在此数据库中替换为永久(

冻结

)事务ID。这用于跟踪数据库是否需要进行清理,以防止事务ID环绕或允许
ux_xact
缩小。它是每个表的
ux_class
.
relfrozenxid
值的最小值
datminmxid
xid
在此之前的所有多重事务ID都已在此数据库中替换为事务ID。这用于跟踪数据库是否需要进行清理,以防止多重事务ID环绕或允许
ux_multixact
缩小。它是每个表的
ux_class
.
relminmxid
值的最小值
dattablespace
oid
(引用
ux_tablespace
.
oid
)
该数据库的默认表空间。在此数据库中,所有
ux_class
.
reltablespace
为零的表都将存储在此表空间中;特别是,所有非共享系统目录都将在那里
datcollate
text
此数据库的LC_COLLATE
datctype
text
此数据库的LC_CTYPE
daticulocale
text
此数据库的ICU区域设置ID
datcollversion
text
排序规则的提供程序特定版本。在创建数据库时记录此版本,然后在使用时检查它,以检测排序规则定义中的更改,这可能导致数据损坏
datacl
aclitem[]
访问权限

ux_db_role_setting

目录ux_db_role_setting记录了每个角色和数据库组合的运行时配置变量的默认值。

与大多数系统目录不同,ux_db_role_setting在整个集群的所有数据库之间共享:每个集群只有一个ux_db_role_setting副本,而不是每个数据库一个。

ux_db_role_setting

列类型
描述
setdatabase
oid
(引用
ux_database
.
oid
)
适用于设置的数据库的OID,如果不是特定于数据库,则为零
setrole
oid
(引用
ux_authid
.
oid
)
适用于设置的角色的OID,如果不是特定于角色,则为零
setconfig
text[]
运行时配置变量的默认值

ux_default_acl

目录ux_default_acl存储要分配给新创建对象的初始权限。

ux_default_acl

列类型
描述
oid
oid
行标识符
defaclrole
oid
(引用
ux_authid
.
oid
)
与此条目相关联的角色的 OID
defaclnamespace
oid
(引用
ux_namespace
.
oid
)
与此条目相关联的命名空间的 OID,如果没有则为零
defaclobjtype
char
此条目所属对象的类型:r = 关系(表、视图),S = 序列,f = 函数,T = 类型,n = 模式
defaclacl
aclitem[]
此类型对象在创建时应具有的访问权限

ux_default_acl条目显示要分配给指定用户的对象的初始权限。有目前有两种类型的条目:“全局” 条目,其defaclnamespace = 0,以及引用特定模式的 “每个模式” 条目。如果存在全局条目,则它会 覆盖对象类型的正常硬编码默认权限。如果存在每个模式条目,则表示要 添加到全局或硬编码默认权限的权限。

请注意,当另一个目录中的 ACL 条目为空时,它被视为其对象的硬编码默认权限,而不是当前在 ux_default_acl中的内容。只有在对象创建期间才会查询 ux_default_acl

ux_depend

目录ux_depend记录了数据库对象之间的依赖关系。这些信息允许DROP命令查找必须通过DROP CASCADE删除的其他对象或在DROP RESTRICT情况下防止删除。

另请参见ux_shdepend,它执行与涉及跨数据库集群共享的对象相关的依赖关系的类似功能。

ux_depend

列类型
描述
classid
oid
(引用
ux_class
.
oid
)
依赖对象所在的系统目录的OID
objid
oid
(引用任何OID列)
特定依赖对象的OID
objsubid
int4
对于表列,这是列号(
objid

classid
指的是表本身)。对于所有其他对象类型,此列为零
refclassid
oid
(引用
ux_class
.
oid
)
引用对象所在的系统目录的OID
refobjid
oid
(引用任何 OID 列)
特定被引用对象的 OID
refobjsubid
int4
对于表列,这是列号(
refobjid

refclassid
引用表本身)。对于所有其他对象类型,此列为零
deptype
char
定义此依赖关系的具体语义的代码

在所有情况下,ux_depend 条目表示不能删除引用对象而不删除依赖对象。但是,有几个子类型由 deptype 标识:

  • DEPENDENCY_NORMAL (n)
    分别创建的对象之间的正常关系。可以删除依赖对象而不影响引用对象。只能通过指定 CASCADE删除引用对象,此时也会删除依赖对象。例如:表列对其数据类型具有正常依赖关系。

  • DEPENDENCY_AUTO (a)
    依赖对象可以与引用对象分别删除,并且应自动删除(无论是 RESTRICT 还是 CASCADE模式),如果删除引用对象。例如:表上的命名约束在表上自动依赖,因此如果删除表,则它将消失。

  • DEPENDENCY_INTERNAL (i)
    依赖对象是作为引用对象的创建的一部分创建的,实际上只是其内部实现的一部分。直接删除依赖对象将被直接禁止(我们会告诉用户改为对引用对象发出DROP)。如果删除引用对象,则会自动删除依赖对象,无论是否指定了CASCADE。如果由于删除某个其他对象的依赖关系而必须删除依赖对象,则其删除将转换为删除引用对象,因此依赖对象的NORMALAUTO 依赖关系的行为就像它们是引用对象的依赖关系一样。例如:视图的 ON SELECT规则在视图上内部依赖,防止在视图保留的同时删除它。规则的依赖关系(例如它引用的表)的行为就像它们是视图的依赖关系一样。

  • DEPENDENCY_PARTITION_PRI (P)
    DEPENDENCY_PARTITION_SEC (S)
    依赖对象是作为引用对象的创建的一部分创建的,实际上只是其内部实现的一部分;但是,与 INTERNAL不同,有多个这样的引用对象。除非这些引用对象中至少有一个,否则不能删除依赖对象。如果任何一个对象被删除,依赖对象应该被删除,无论是否指定了CASCADE。此外,与 INTERNAL不同的是,依赖对象依赖的其他对象被删除时不会自动删除任何分区引用对象。因此,如果删除操作没有通过其他路径级联到至少一个这些对象中的任何一个,将被拒绝。(在大多数情况下,依赖对象与至少一个分区引用对象共享所有非分区依赖项,因此此限制不会导致阻止任何级联删除。)主分区依赖和次分区依赖的行为相同,只是主依赖项更适合用于错误消息;因此,分区依赖对象应该有一个主分区依赖项和一个或多个次分区依赖项。请注意,分区依赖关系是在对象通常具有的任何依赖关系之外建立的。这简化了 ATTACH/DETACH PARTITION操作:只需要添加或删除分区依赖关系。例如:子分区索引在其所在的分区表和父分区索引上都建立了分区依赖关系,因此如果其中任何一个被删除,它也会被删除,否则不会被删除。对父索引的依赖关系是主要的,因此如果用户尝试删除子分区索引,则错误消息将建议删除父索引而不是表。

  • DEPENDENCY_EXTENSION (e)
    依赖对象是引用对象(参见ux_extension)的扩展成员。只能通过引用对象上的DROP EXTENSION删除依赖对象。从功能上讲,此依赖关系类型与 INTERNAL 依赖关系相同,但为了清晰和简化ux_dump,它们被保持分开。

  • DEPENDENCY_AUTO_EXTENSION (x)
    依赖对象不是引用对象的扩展成员(因此不应该被 ux_dump忽略),但是如果没有扩展,它将无法正常工作,并且应该自动删除。依赖对象也可以单独删除。从功能上讲,此依赖关系类型与AUTO 依赖关系相同,但为了清晰和简化 ux_dump,它们被保持分开。

未来可能需要其他依赖关系类型。

请注意,两个对象很可能通过多个 ux_depend条目链接。例如,子分区索引将在其关联的分区表上具有分区类型依赖关系,并且在其索引的每个列上都具有自动依赖关系。这种情况表达了多个依赖关系语义的并集。如果任何一个依赖关系满足其自动删除的条件,则可以在不使用CASCADE 的情况下删除依赖对象。相反,必须满足所有依赖关系的限制,以便一起删除这些对象。

在 initdb过程中创建的大多数对象都被认为是“固定的”,这意味着系统本身依赖于它们。因此,它们永远不允许被删除。此外,知道固定对象不会被删除,依赖关系的限制可以更严格地实施。例如,如果一个对象依赖于一个固定对象,那么它也被认为是固定的,即使它本身没有被标记为固定的。机制不会费心制作ux_depend条目来显示对它们的依赖关系。因此,例如,类型为numeric的表列在概念上对numeric数据类型具有NORMAL依赖关系,但实际上在ux_depend中没有这样的条目。

ux_description

目录ux_description存储每个数据库对象的可选描述(注释)。可以使用COMMENT命令来操作描述,并使用uxsql的\d命令查看。许多内置系统对象的描述在ux_description的初始内容中提供。

另请参见ux_shdescription,它为涉及跨数据库集群共享的对象的描述执行类似的功能。

ux_description

列类型
描述
objoid
oid
(引用任何OID列)
此描述所涉及的对象的OID
classoid
oid
(引用
ux_class
.
oid

此对象出现在的系统目录的OID
objsubid
int4
对于表列的注释,这是列号(
objoid

classoid
指的是表本身)。对于所有其他对象类型,此列为零
description
text
作为此对象描述的任意文本

ux_enum

ux_enum 目录包含每个枚举类型的值和标签条目。给定枚举值的内部表示实际上是其在 ux_enum 中关联行的 OID。

ux_enum

列类型
描述
oid
oid
行标识符
enumtypid
oid
(引用
ux_type
.
oid
)
拥有此枚举值的
ux_type
条目的 OID
enumsortorder
float4
此枚举值在其枚举类型中的排序位置
enumlabel
name
此枚举值的文本标签

ux_enum 行的 OID 遵循特殊规则:偶数 OID 保证按其枚举类型的排序顺序排序。也就是说,如果两个偶数 OID属于同一枚举类型,则较小的 OID 必须具有较小的 enumsortorder 值。奇数 OID值不需要与排序顺序有任何关系。此规则允许枚举比较例程在许多常见情况下避免目录查找。创建和更改枚举类型的例程尝试分配偶数 OID。尽可能将OID转换为枚举值。

创建枚举类型时,其成员被分配排序位置 1..n 。但是,稍后添加的成员可能会被赋予负值或分数值enumsortorder。这些值的唯一要求是它们在每个枚举类型中正确排序且唯一。

ux_event_trigger

目录ux_event_trigger存储事件触发器。

ux_event_trigger

列类型
描述
oid
oid
行标识符
evtname
name
触发器名称(必须唯一)
evtevent
name
标识此触发器触发的事件
evtowner
oid
(引用
ux_authid
.
oid

事件触发器的所有者
evtfoid
oid
(引用
ux_proc
.
oid

要调用的函数
evtenabled
char
控制事件触发器在哪些session_replication_role模式下触发。0 = 触发器在

origin



local

模式下触发,D = 触发器已禁用,R = 触发器以

副本

模式触发,A = 触发器总是触发
evttags
text[]
此触发器将触发的命令标记。如果为NULL,则不基于命令标记限制触发此触发器

ux_extension

目录ux_extension存储有关已安装扩展的信息。

ux_extension

列类型
描述
oid
oid
行标识符
extname
name
扩展的名称
extowner
oid
(引用
ux_authid
.
oid
)
扩展的所有者
extnamespace
oid
(引用
ux_namespace
.
oid
)
包含扩展导出对象的模式
extrelocatable
bool
如果扩展可以重新定位到另一个模式,则为True
extversion
text
扩展的版本名称
extconfig
oid[]
(引用
ux_class
.
oid

扩展配置表的
regclass
OID数组,如果没有则为
NULL
extcondition
text[]
扩展配置表的
WHERE
子句过滤条件数组,如果没有则为
NULL

请注意,与大多数带有“命名空间”列的目录不同, extnamespace并不意味着扩展属于该模式。扩展名从不带有模式限定符。相反,extnamespace表示包含大多数或所有扩展对象的模式。如果extrelocatable为true,则该模式必须实际上包含属于扩展的所有模式限定符对象。

ux_foreign_data_wrapper

目录ux_foreign_data_wrapper存储外部数据包装器定义。外部数据包装器是访问驻留在外部服务器上的外部数据的机制。

ux_foreign_data_wrapper

列类型
描述
oid
oid
行标识符
fdwname
name
外部数据包装器的名称
fdwowner
oid
(引用
ux_authid
.
oid
)
外部数据包装器的所有者
fdwhandler
oid
(引用
ux_proc
.
oid
)
引用负责提供外部数据包装器执行例程的处理程序函数。 如果没有提供处理程序,则为零
fdwvalidator
oid
(引用
ux_proc
.
oid
)
引用负责检查给定给外部数据包装器的选项以及外部服务器和用户的选项的有效性的验证器函数。使用外部数据包装器的映射。如果没有提供验证器,则为零
fdwacl
aclitem[]
访问权限
fdwoptions
text[]
特定于外部数据包装器的选项,作为“keyword=value”字符串

ux_foreign_server

目录ux_foreign_server存储外部服务器定义。外部服务器描述外部数据源,例如远程服务器。外部服务器通过外部数据包装器访问。

ux_foreign_server

列类型
描述
oid
oid
行标识符
srvname
name
外部服务器名称
srvowner
oid
(引用
ux_authid
.
oid
)
外部服务器所有者
srvfdw
oid
(引用
ux_foreign_data_wrapper
.
oid
)
此外部服务器的外部数据包装器OID
srvtype
text
服务器类型(可选)
srvversion
text
服务器版本(可选)
srvacl
aclitem[]
访问权限
srvoptions
text[]
外部服务器特定选项,作为

keyword=value

字符串

ux_foreign_table

目录ux_foreign_table包含有关外部表的辅助信息。外部表主要由ux_class条目表示,就像普通表一样。它的ux_foreign_table条目包含仅与外部表相关的信息,而不包含任何其他类型的关系。

ux_foreign_table

列类型
描述
ftrelid
oid
(引用
ux_class
.
oid
)
此外部表的
ux_class
条目的OID
ftserver
oid
(引用
ux_foreign_server
.
oid
)
此外部表的外部服务器的OID
ftoptions
text[]
外部表选项,作为“
keyword=value
”字符串

ux_index

目录ux_index包含有关索引的部分信息。其余信息主要在ux_class中。

ux_index

列类型
描述
indexrelid
oid
(引用
ux_class
.
oid
)
此索引的
ux_class
条目的OID
indrelid
oid
(引用
ux_class
.
oid
)
此索引所属表的
ux_class
条目的OID
indnatts
int2
索引中的列总数(重复
ux_class.relnatts
);此数字包括键和包含的属性
indnkeyatts
int2
索引中的
键列
数,不包括任何
包含列
,后者仅存储而不参与索引语义
indisunique
bool
如果为真,则为唯一索引
indnullsnotdistinct
bool
此值仅用于唯一索引。如果为假,则此唯一索引将认为 null 值不同(因此索引可以包含列中的多个 null 值,这是默认的 UXsinoDB 行为)。如果为真,则将 null 值视为相等(因此索引只能包含一种 null 值)
indisprimary
bool
如果为真,则此索引表示表的主键(当此值为真时,
indisunique
应始终为真)
indisexclusion
bool
如果为真,则此索引支持排除约束
indimmediate
bool
如果为真,则唯一性检查将在插入时立即执行(如果
indisunique
不为真,则无关紧要)
indisclustered
bool
如果为真,则表上次聚集在此索引上
indisvalid
bool
如果为真,则索引当前对查询有效。false 表示索引可能不完整:它仍必须通过
INSERT
UPDATE
操作进行修改,但不能安全地用于查询。如果它是唯一的,则唯一性属性也不能保证为真
indcheckxmin
bool
如果为真,则查询在此
ux_index
行的
低于它们的
TransactionXmin
事件视界之前不能使用索引,因为表可能包含具有不兼容行的损坏的 HOT 链
indisready
bool
如果为真,则索引当前已准备好进行插入。false 表示必须忽略索引的
INSERT
UPDATE
操作
indislive
bool
如果为假,则索引正在被删除过程中,应忽略它以所有目的(包括 HOT 安全决策)
indisreplident
bool
如果为真,则使用
ALTER TABLE ... REPLICA IDENTITY USING INDEX ...
选择此索引作为“副本标识”
indkey
int2vector
(引用
ux_attribute
.
attnum

这是一个包含
indnatts
个值的数组,指示此索引索引的哪些表列。例如,值
1 3
表示第一个和第三个表列组成索引条目。关键列在非关键(包含)列之前。此数组中的零表示相应的索引属性是表列上的表达式,而不是简单的列引用
indcollation
oidvector
(引用
ux_collation
.
oid

对于索引键中的每个列(
indnkeyatts
个值),这包含要用于索引的排序规则的OID,如果列不是可排序的数据类型,则为零
indclass
oidvector
(引用
ux_opclass
.
oid

对于索引键中的每个列(
indnkeyatts
个值),这包含要使用的操作符类的OID
indoption
int2vector
这是一个包含
indnkeyatts
个值的数组,存储每列的标志位。位的含义由索引的访问方法定义
indexprs
ux_node_tree
索引属性的表达式树(以
nodeToString()
表示)。这是一个列表,每个零条目都有一个元素。如果所有索引属性都是简单引用,则为空
indpred
ux_node_tree
部分索引谓词的表达式树(以
nodeToString()
表示)。如果不是部分索引,则为空

ux_inherits

目录ux_inherits记录了关于表和索引继承层次结构的信息。对于数据库中每个直接的父子表或索引关系,都有一个条目。(可以通过跟随条目链来确定间接继承。)

ux_inherits

列类型
描述
inhrelid
oid
(引用
ux_class
.
oid

子表或索引的OID
inhparent
oid
(引用
ux_class
.
oid

父表或索引的OID
inhseqno
int4
如果一个子表有多个直接父表(多重继承),则该数字告诉继承列的排列顺序。计数从1开始
索引不能有多重继承,因为它们只能在使用声明性分区时继承
inhdetachpending
bool
对于正在分离的分区,值为
true
;否则为
false

ux_init_privs

目录ux_init_privs记录系统中对象的初始权限信息。对于每个具有非默认(非NULL)初始权限集的数据库对象,都有一个条目。

对象可以通过在系统初始化(由initdb)时设置这些权限或在通过CREATE EXTENSION创建对象时使用GRANT系统设置初始权限。请注意,系统将自动处理扩展脚本期间的权限记录,扩展作者只需在其脚本中使用GRANT和REVOKE语句即可记录权限。privtype列指示初始权限是由initdb还是通过CREATE EXTENSION命令设置的。

通过initdb设置初始权限的对象将具有privtype'i'的条目,而通过CREATE EXTENSION设置初始权限的对象将具有privtype'e'的条目。

ux_init_privs

列类型
描述
objoid
oid
(引用任何OID列)
特定对象的OID
classoid
oid
(引用
ux_class
.
oid

对象所在系统目录的 OID
objsubid
int4
对于表列,这是列号(
objoid

classoid
指的是表本身)。对于所有其他对象类型,此列为零
privtype
char
定义此对象初始权限类型的代码;请参阅文本
initprivs
aclitem[]
初始访问权限

ux_job

ux_job主要用来存储DBMS_JOB定时任务的相关信息。

ux_job

名称类型NULL描述
job_idintegernot null作业id,是唯一的(有唯一索引)
log_usernamenot null创建作业者的用户名
dbnamenamenot null标识作业要在哪个数据库执行的数据库名称
node_namenamenot null标识当前作业是在哪个数据库主节点上创建和执行
node_portintegernot null节点端口号
job_status"char"not null当前任务的执行状态,有四种可能取值'r', 's', 'f', 'd',默认为's',取值含义:r=running,s=success,f= failed,d=disable
start_datetimestamp without time zonenot null作业创建的时间
next_run_datetimestamp without time zonenot null下次执行的时间
failure_countsmallintnot null失败次数
enablebooleannot null作业是否能够运行
intervaltext 作业执行的时间间隔
last_start_datetimestamp without time zone 上次开始运行的时间
last_end_datetimestamp without time zone 上次结束运行的时间
last_suc_datetimestamp without time zone 上次成功运行的时间
this_run_datetimestamp without time zone 这次运行时间
job_nametext 作业名称

### ux_job_proc

ux_job_proc对应ux_job表中每个任务的作业内容。

ux_job_proc

名称类型NULL描述
job_idintegernot null作业id,是唯一的(有唯一索引)
whattext 作业运行的内容
job_nametext 作业名称

ux_language

目录ux_language注册了可以编写函数或存储过程的语言。

ux_language

列类型
描述
oid
oid
行标识符
lanname
name
语言名称
lanowner
oid
(引用
ux_authid
.
oid
)
语言所有者
lanispl
bool
这对于内部语言(如SQL)是错误的,对于用户定义的语言是正确的。目前,
ux_dump
仍然使用此项来确定需要转储哪些语言,但这可能会在未来被替换为不同的机制
lanpltrusted
bool
如果这是一个受信任的语言,则为True,这意味着它被认为不会授予对正常SQL执行环境之外的任何内容的访问权限。只有超级用户才能在不受信任的语言中创建函数
lanplcallfoid
oid
(引用
ux_proc
.
oid

对于非内部语言,这引用语言处理程序,它是一个特殊的函数,负责执行所有用特定语言编写的函数。对于内部语言,为零
laninline
oid
(引用
ux_proc
.
oid

这引用一个函数,负责执行

inline

匿名代码块(
DO
块)。如果不支持内联块,则为零
lanvalidator
oid
(引用
ux_proc
.
oid

这引用一个语言验证器函数,负责在创建新函数时检查语法和有效性。如果没有提供验证器,则为零
lanacl
aclitem[]
访问权限
lanincludeout
bool
为真表示语言创建的函数兼容Oracle的OUT和INOUT参数

ux_largeobject

目录ux_largeobject保存了组成“大对象”的数据。大对象由创建时分配的OID标识。每个大对象被分成小段或“页”,方便地存储为ux_largeobject中的行。每页的数据量定义为LOBLKSIZE(目前为BLCKSZ/4,通常为2kB)。

使用ux_largeobject_metadata获取大对象OID列表。

ux_largeobject

列类型
描述
loid
oid
(引用
ux_largeobject_metadata
.
oid

包含此页的大对象的标识符
pageno
int4
此页在其大对象中的页号(从零开始计数)
data
bytea
大对象中存储的实际数据。 这永远不会超过
LOBLKSIZE
字节,可能会更少

ux_largeobject 的每一行都保存一个大对象页面的数据,从对象内的字节偏移量 (pageno * LOBLKSIZE)开始。实现允许稀疏存储:页面可能丢失,即使它们不是对象的最后一页,它们也可能短于 LOBLKSIZE字节。大对象内的缺失区域读取为零。

ux_largeobject_metadata

目录ux_largeobject_metadata保存与大对象相关的元数据。实际的大对象数据存储在ux_largeobject中。

ux_largeobject_metadata

列类型
描述
oid
oid
行标识符
lomowner
oid
(引用
ux_authid
.
oid
)
大对象的所有者
lomacl
aclitem[]
访问权限

ux_namespace

目录ux_namespace存储命名空间。 命名空间是支持SQL模式的结构:每个命名空间可以有不同的关系、类型等集合,避免名称冲突。

ux_namespace

列类型
描述
oid
oid
行标识符
nspname
name
命名空间名称
nspowner
oid
(引用
ux_authid
.
oid
)
命名空间所有者
nspacl
aclitem[]
访问权限

ux_opclass

目录ux_opclass定义了索引访问方法操作符类。每个操作符类定义了特定数据类型和特定索引访问方法的索引列的语义。操作符类基本上指定了特定操作符族适用于特定可索引列数据类型。实际可用于索引列的操作符集是接受列数据类型作为其左侧输入的那些操作符。

ux_opclass

列类型
描述
oid
oid
行标识符
opcmethod
oid
(引用
ux_am
.
oid
)
索引访问方法操作符类是为了
opcname
name
此操作符类的名称
opcnamespace
oid
(引用
ux_namespace
.
oid
)
此操作符类的名称空间
opcowner
oid
(引用
ux_authid
.
oid

运算符类的所有者
opcfamily
oid
(引用
ux_opfamily
.
oid

包含运算符类的运算符族
opcintype
oid
(引用
ux_type
.
oid

运算符类索引的数据类型
opcdefault
bool
如果此运算符类是
opcintype
的默认值,则为True
opckeytype
oid
(引用
ux_type
.
oid

存储在索引中的数据类型,如果与
opcintype
相同,则为零

运算符类的opcmethod必须匹配其包含运算符族的opfmethod。此外,在任何给定的opcmethodopcintype组合中,opcdefault为真的ux_opclass行不能超过一个。

ux_operator

目录ux_operator存储有关运算符的信息。

ux_operator

列类型
描述
oid
oid
行标识符
oprname
name
运算符名称
oprnamespace
oid
(引用
ux_namespace
.
oid
)
包含此运算符的命名空间的OID
oprowner
oid
(引用
ux_authid
.
oid
)
运算符的所有者
oprkind
char
b = 中缀运算符(“both”), 或l = 前缀运算符(“left”)
oprcanmerge
bool
此操作符支持合并连接
oprcanhash
bool
此操作符支持哈希连接
oprleft
oid
(引用
ux_type
.
oid
)
左操作数的类型(前缀操作符为零)
oprright
oid
(引用
ux_type
.
oid
)
右操作数的类型
oprresult
oid
(引用
ux_type
.
oid
)
结果的类型(尚未定义的“shell”操作符为零)
oprcom
oid
(引用
ux_operator
.
oid
)
此操作符的交换操作符(如果没有则为零)
oprnegate
oid
(引用
ux_operator
.
oid
)
此操作符的否定操作符(如果没有则为零)
oprcode
regproc
(引用
ux_proc
.
oid
)
实现此操作符的函数(尚未定义的“shell”操作符为零)
oprrest
regproc
(引用
ux_proc
.
oid
)
此操作符的限制选择性估计函数(如果没有则为零)
oprjoin
regproc
(引用
ux_proc
.
oid
)
此操作符的连接选择性估计函数(如果没有则为零)

ux_opfamily

目录ux_opfamily定义了操作符族。每个操作符族都是一组操作符和相关的支持例程,用于实现特定索引访问方法指定的语义。此外,操作符族中的操作符都是“兼容”的,这是由访问方法指定的方式。操作符族的概念允许跨数据类型的操作符用于索引,并使用访问方法语义的知识进行推理。

ux_opfamily

列类型
描述
oid
oid
行标识符
opfmethod
oid
(引用
ux_am
.
oid
)
索引访问方法操作符族
opfname
name
此操作符族的名称
opfnamespace
oid
(引用
ux_namespace
.
oid
)
此操作符族的命名空间
opfowner
oid
(引用
ux_authid
.
oid

操作符族的所有者

定义操作符族的大部分信息不在其ux_opfamily行中,而在相关的行中ux_amopux_amprocux_opclass

ux_parameter_acl

目录ux_parameter_acl记录了已授予一个或多个角色权限的配置参数。对于具有默认权限的参数不会进行记录。

与大多数系统目录不同,ux_parameter_acl在整个集群的所有数据库之间共享:每个数据库不是有一个ux_parameter_acl的副本,而是整个集群只有一个。

ux_parameter_acl

列类型
描述
oid
oid
行标识符
parname
text
授予权限的配置参数名称
paracl
aclitem[]
访问权限

ux_partitioned_table

目录ux_partitioned_table存储有关表如何分区的信息。

ux_partitioned_table

列类型
描述
partrelid
oid
(引用
ux_class
.
oid
)
此分区表的
ux_class
条目的OID
partstrat
char
分区策略;h = 哈希分区表,l = 列表分区表,r = 范围分区表
partnatts
int2
分区键中的列数
partdefid
oid
(引用
ux_class
.
oid
)
此分区表的默认分区的
ux_class
条目的OID, 如果此分区表没有默认分区,则为零
partattrs
int2vector
(引用
ux_attribute
.
attnum

这是一个
partnatts
值的数组,指示哪些表列是分区键的一部分。例如,值
1 3
表示第一个和第三个表列组成分区键。此数组中的零表示相应的分区键列是表达式,而不是简单的列引用
partclass
oidvector
(引用
ux_opclass
.
oid

对于分区键中的每个列,它包含要使用的运算符类的OID
partcollation
oidvector
(引用
ux_collation
.
oid

对于分区键中的每个列,它包含用于分区的排序规则的OID,如果列不是可排序数据类型,则为零
partexprs
ux_node_tree
分区键列的表达式树(以
nodeToString()
表示)。这是一个列表,每个零条目在
partattrs
中有一个元素。如果所有分区键列都是简单引用,则为空

ux_policy

目录ux_policy存储表的行级安全策略。策略包括适用于哪种命令(可能是所有命令),适用于哪些角色,要添加为查询的安全障碍限定符的表达式,以及要添加为尝试向表中添加新记录的查询的WITH CHECK选项的表达式。

ux_policy

列类型
描述
oid
oid
行标识符
polname
name
策略的名称
polrelid
oid
(引用
ux_class
.
oid

策略适用的表
polcmd
char
策略适用的命令类型:r表示
SELECT
,a表示
INSERT
,w表示
UPDATE
,d表示
DELETE
,或*表示所有
polpermissive
bool
策略是允许还是限制?
polroles
oid[]
(引用
ux_authid
.
oid
)
策略适用的角色;零表示
PUBLIC
(通常单独出现在数组中)
polqual
ux_node_tree
要添加到使用表的安全屏障限制的表达式树
polwithcheck
ux_node_tree
要添加到尝试向表中添加行的 WITH CHECK 限制的表达式树

注意

存储在 ux_policy 中的策略仅在其表的ux_class.relrowsecurity设置时应用。

ux_proc

目录ux_proc存储有关函数、过程、聚合函数和窗口函数(统称为例程)的信息。

如果prokind指示条目是聚合函数的,则在ux_aggregate中应该有一个匹配的行。

ux_proc

列类型
描述
oid
oid
行标识符
proname
name
函数名称
pronamespace
oid
(引用
ux_namespace
.
oid

包含此函数的命名空间的OID
proowner
oid
(引用
ux_authid
.
oid

函数的所有者
prolang
oid
(引用
ux_language
.
oid

此函数的实现语言或调用接口
procost
float4
估计的执行成本(以cpu_operator_cost为单位);如果
proretset
,则每行返回的成本
prorows
float4
估计的结果行数(如果不是
proretset
,则为零)
provariadic
oid
(引用
ux_type
.
oid

可变数组参数元素的数据类型,如果函数没有可变参数,则为零
prosupport
regproc
(引用
ux_proc
.
oid

此函数的计划程序支持函数,如果没有,则为零
prokind
char
f表示普通函数,p表示过程,a表示聚合函数,w表示窗口函数
prosecdef
bool
函数是安全定义者(即

setuid

函数)
proleakproof
bool
该函数没有副作用。除了通过返回值传递的信息外,不传递任何关于参数的信息。任何可能根据其参数的值抛出错误的函数都不是泄漏证明的
proisstrict
bool
如果任何调用参数为空,则函数返回null。在这种情况下,实际上不会调用函数。不是

strict

的函数必须准备处理空输入
proretset
bool
函数返回一个集合(即指定数据类型的多个值)
provolatile
char
provolatile
指示函数的结果是否仅取决于其输入参数,或受外部因素影响。 它是

不变的

函数的i,对于相同的输入始终提供相同的结果。对于结果(对于固定输入)在扫描中不会改变的“稳定”函数,它是s。对于结果可能随时更改的“易变”函数,它是v。(对于具有副作用的函数也使用v,以便对它们的调用不能被优化掉。)
proparallel
char
表示函数是否可以安全地在并行模式下运行。对于可以在并行模式下无限制运行的函数,它是s。对于可以在并行模式下运行,但其执行受限于并行组的领导者的函数,它是r;并行工作进程不能调用这些函数。对于在并行模式下不安全的函数,它是u;这样的函数的存在会强制执行串行执行计划
pronargs
int2
签名参数的个数
proargtypes
oidvector
(引用
ux_type
.
oid

一个函数参数的数据类型的数组,反映了函数的调用签名。这包括IN、INOUT和VARIADIC参数;如果是用兼容Oracle的语言实现的函数,还包括OUT参数
proallargtypes
oid[]
(引用
ux_type
.
oid

是函数参数的数据类型数组。这包括所有参数(包括
OUT

INOUT
参数);但是,如果所有参数都是
IN
参数,则此字段将为null。请注意,下标从1开始,而由于历史原因,
proargtypes
从0开始下标
proargmodes
char[]
是函数参数的模式数组,编码为i表示
IN
参数,o表示
OUT
参数,b表示
INOUT
参数,v表示
VARIADIC
参数,t表示
TABLE
参数。如果所有参数都是
IN
参数,则此字段将为null。请注意,下标对应于参数在函数参数列表中的位置。
proallargtypes
而不是
proargtypes
proargnames
text[]
函数参数的名称数组。 没有名称的参数在数组中设置为空字符串。 如果没有参数有名称,则此字段将为 null。 请注意,下标对应于
proallargtypes
而不是
proargtypes
的位置
proargdefaults
ux_node_tree
默认值的表达式树(以
nodeToString()
表示)。 这是一个列表,有
pronargdefaults
个元素,对应于最后N个
输入
参数(即最后
N

proargtypes
位置)。 如果没有参数有默认值,则此字段将为 null
protrftypes
oid[]
(引用
ux_type
.
oid

要应用转换的参数/结果数据类型的数组(从函数的
TRANSFORM
子句)。 如果没有,则为 null
prosrc
text
这告诉函数处理程序如何调用函数。 它可能是解释语言的实际源代码,链接符号,文件名或几乎任何其他内容,具体取决于实现语言/调用约定
probin
text
有关如何调用函数的其他信息。 再次强调,解释是特定于语言的
prosqlbody
ux_node_tree
预解析的 SQL 函数体。 当以 SQL 标准表示法而不是作为字符串文字给出函数体时,这用于 SQL 语言函数。 在其他情况下,它为 null
proconfig
text[]
函数的运行时配置变量的本地设置
proacl
aclitem[]
访问权限

对于编译的函数,包括内置函数和动态加载函数, prosrc 包含函数的 C 语言 名称(链接符号)。 对于 SQL语言函数,如果将函数体指定为字符串文字,则 prosrc 包含函数的源文本;但是,如果函数体以 SQL 标准样式指定, 则 prosrc未使用(通常为空 字符串),而 prosqlbody 包含 预解析的定义。 对于所有其他当前已知的语言类型,prosrc 包含函数的源 文本。除非是 SQL 语言函数,否则 probin 为null。它提供了包含函数的共享库文件的名称,用于动态加载的C 函数。

ux_publication

目录ux_publication包含数据库中创建的所有发布。

ux_publication

列类型
描述
oid
oid
行标识符
pubname
name
发布名称
pubowner
oid
(引用
ux_authid
.
oid
)
发布所有者
puballtables
bool
如果为true,则此发布自动包括数据库中的所有表,包括将来创建的任何表
pubinsert
bool
如果为true,则表中的
INSERT
操作将被复制
pubupdate
bool
如果为true,则表中的
UPDATE
操作将被复制
pubdelete
bool
如果为 true,则在发布中的表上复制
DELETE
操作
pubtruncate
bool
如果为 true,则在发布中的表上复制
TRUNCATE
操作
pubviaroot
bool
如果为 true,则使用发布中提到的最上层分区祖先的标识和模式来复制叶分区上的操作,而不是使用叶分区自己的标识和模式

ux_publication_namespace

目录ux_publication_namespace包含数据库中模式和发布之间的映射。这是一个多对多的映射关系。

ux_publication_namespace

列类型
描述
oid
oid
行标识符
pnpubid
oid
(引用
ux_publication
.
oid
)
发布的引用
pnnspid
oid
(引用
ux_namespace
.
oid
)
模式的引用

ux_publication_rel

目录ux_publication_rel包含数据库中关系和发布之间的映射。这是一个多对多的映射。

ux_publication_rel

列型
描述
oid
oid
行标识符
prpubid
oid
(引用
ux_publication
.
oid
)
参考出版物
prrelid
oid
(引用
ux_class
.
oid
)
参照关系
prqual
ux_node_tree
表达树(含)
nodeToString()
(代表)关系的出版资格条件。如果没有发布限定条件,则为空
prattrs
int2vector
(引用
ux_attribute
.
attnum
)
这是一个值数组,它指示哪些表列是发布的一部分。例如,
1 3
这意味着第一和第三个表格列已经发布。空值表示所有列都已发布

ux_queue

ux_queue包含数据库中关于队列与队列表间的关系。

ux_queue

名称类型引用描述
oidoid 行标识符
qnamename 队列的名称
qnamespaceoidux_namespace.oid队列所属的名字空间
qrelidoidux_class.Oid队列所在队列表的oid
qtypeint 队列的类型
qenqenablebool 队列是否运行入队
qdeqenablebool 队列是否运行出队
qmaxretriesint 暂无意义
qretrydelaydouble 暂无意义
qretentiondouble 暂无意义

ux_queue_table

ux_queue_table包含数据库中关于队列表与队列间的关系。

ux_queue_table

名称类型引用描述
oidoid 行标识符
qtnamename 队列表的名称
qtnamespaceoidux_namespace.oid队列表所属的名字空间
qtrelidoidux_class.Oid队列表对应的oid
qtpayloadoidux_type.Oid队列表消息负载的类型
qtsortchar 暂无意义
qtmultiple_consumersbool 暂无意义
qtmessage_groupingsmallint 暂无意义

ux_range

目录ux_range存储有关范围类型的信息。这是除了类型在ux_type中的条目之外的信息。

ux_range

列类型
描述
rngtypid
oid
(引用
ux_type
.
oid
)
范围类型的OID
rngsubtype
oid
(引用
ux_type
.
oid
)
此范围类型的元素类型(子类型)的OID
rngmultitypid
oid
(引用
ux_type
.
oid
)
此范围类型的多范围类型的OID
rngcollation
oid
(引用
ux_collation
.
oid
)
用于范围比较的排序规则的OID,如果没有则为零
rngsubopc
oid
(引用
ux_opclass
.
oid

子类型用于范围比较的操作符类的OID
rngcanonical
regproc
(引用
ux_proc
.
oid

将范围值转换为规范形式的函数的OID,如果没有则为零
rngsubdiff
regproc
(引用
ux_proc
.
oid

返回两个元素值之间的差异作为
double precision
的函数的OID,如果没有则为零

rngsubopc(如果元素类型是可排序的,则加上rngcollation)确定范围类型使用的排序顺序。rngcanonical用于离散元素类型。rngsubdiff是可选的,但应提供以提高范围类型上GiST索引的性能。

ux_replication_origin

ux_replication_origin目录包含所有创建的复制源。

与大多数系统目录不同,ux_replication_origin 在整个集群的所有数据库之间共享:每个集群只有一个ux_replication_origin 副本,而不是每个数据库一个。

ux_replication_origin

列类型
描述
roident
oid
复制源的唯一集群标识符。不应离开系统
roname
text
复制源的外部用户定义名称

ux_rewrite

目录ux_rewrite存储表和视图的重写规则。

ux_rewrite

列类型
描述
oid
oid
行标识符
rulename
name
规则名称
ev_class
oid
(参考
ux_class
.
oid
)
此规则所适用的表
ev_type
char
规则适用的事件类型:1 =
SELECT
,2 =
UPDATE
,3 =
INSERT
,4 =
DELETE
ev_enabled
char
控制规则在哪些session_replication_role模式下触发。O = 规则在

origin



local

模式下触发,D = 规则已禁用,R = 规则以“
replica
”模式触发,A = 规则总是触发
is_instead
bool
如果规则是
INSTEAD
规则,则为True
ev_qual
ux_node_tree
规则的限定条件的表达式树(以
nodeToString()
表示形式)
ev_action
ux_node_tree
规则的操作的查询树(以
nodeToString()
表示形式)

注意

如果表中有任何规则,则ux_class.relhasrules必须为true。

ux_seclabel

目录ux_seclabel存储数据库对象的安全标签。可以使用SECURITY LABEL命令来操作安全标签。

另请参见ux_shseclabel,它为在数据库集群中共享的数据库对象的安全标签执行类似的功能。

ux_seclabel

列类型
描述
objoid
oid
(引用任何OID列)
此安全标签所属对象的OID
classoid
oid
(引用
ux_class
.
oid
)
此对象出现在的系统目录的OID
objsubid
int4
对于表列上的安全标签,这是列号(
objoid

classoid
是指表本身)。对于所有其他对象类型,此列为零
provider
text
与此标签关联的标签提供程序
label
text
应用于此对象的安全标签

ux_sequence

目录ux_sequence包含有关序列的信息。有关序列的某些信息,例如名称和模式,位于ux_class中。

ux_sequence

列类型
描述
seqrelid
oid
(引用
ux_class
.
oid
)
此序列的
ux_class
条目的OID
seqtypid
oid
(引用
ux_type
.
oid
)
序列的数据类型
seqstart
int8
序列的起始值
seqincrement
int8
序列的增量值
seqmax
int8
序列的最大值
seqmin
int8
序列的最小值
seqcache
int8
序列的缓存大小
seqcycle
bool
序列是否循环

ux_shdepend

目录ux_shdepend记录了数据库对象和共享对象(如角色)之间的依赖关系。这些信息允许UXsinoDB在尝试删除这些对象之前确保它们没有被引用。

另请参见ux_depend,它执行类似于涉及单个数据库中对象的依赖关系的功能。

与大多数系统目录不同,ux_shdepend在整个集群的所有数据库之间共享:每个集群只有一个ux_shdepend副本,而不是每个数据库一个。

ux_shdepend

列类型
描述
dbid
oid
(引用
ux_database
.
oid

依赖对象所在的数据库的OID,对于共享对象为零
classid
oid
(引用
ux_class
.
oid

依赖对象所在的系统目录的OID
objid
oid
(引用任何OID列)
特定依赖对象的OID
objsubid
int4
对于表列,这是列号(与系统目录
ux_attribute
中的
attnum
相同),对于其他对象为零
refclassid
oid
(引用
ux_class
.
oid

被依赖对象所在的系统目录的OID (引用任何OID列)
refobjid
oid
(引用任何OID列)
特定被依赖对象的OID
deptype
char
定义此依赖关系的具体语义的代码。依赖类型:一般是n(普通依赖项)或a(强制依赖项)

在所有情况下,ux_shdepend条目表示不能删除被引用对象而不删除依赖对象。但是,有几个子类型由deptype标识:

  • SHARED_DEPENDENCY_OWNER (o)
    被引用对象(必须是角色)是依赖对象的所有者。

  • SHARED_DEPENDENCY_ACL (a)
    被引用对象(必须是角色)在依赖对象的ACL(访问控制列表,即权限列表)中被提及。(不为对象的所有者创建SHARED_DEPENDENCY_ACL条目,因为所有者将拥有SHARED_DEPENDENCY_OWNER条目。)

  • SHARED_DEPENDENCY_POLICY (r)
    被引用对象(必须是角色)被提及为依赖策略对象的目标。

  • SHARED_DEPENDENCY_TABLESPACE (t)
    被引用对象(必须是表空间)被提及为没有存储的关系的表空间。

将来可能需要其他依赖关系类型。特别要注意的是,当前的定义仅支持角色和表空间作为被引用对象。

ux_depend目录中一样,在initdb期间创建的大多数对象都被认为是“固定的”。在ux_shdepend中不会创建任何条目,这些条目将具有固定对象作为被引用对象或依赖对象。

示例

假设我们有一个名为myrole的角色,它依赖于一个名为mytable的表。我们可以使用以下查询来查找这些依赖关系:

SELECT classid::regclass, objid, refclassid::regclass, refobjid, deptype
FROM ux_shdepend
WHERE refclassid = 'ux_class'::regclass AND refobjid = 'mytable'::regclass::oid;

这将返回以下结果:

  classid  | objid | refclassid | refobjid | deptype 
-----------+-------+------------+----------+---------
 ux_class  | 16384 | ux_class   | 16402    | n
 ux_class  | 16402 | ux_class   | 16403    | n
 ux_class  | 16402 | ux_class   | 16404    | n
 ux_class  | 16402 | ux_class   | 16405    | n
 ux_class  | 16402 | ux_class   | 16406    | n
 ux_class  | 16402 | ux_class   | 16407    | n
 ux_class  | 16402 | ux_class   | 16408    | n
 ux_class  | 16402 | ux_class   | 16409    | n
 ux_class  | 16402 | ux_class   | 16410    | n
 ux_class  | 16402 | ux_class   | 16411    | n
 ux_class  | 16402 | ux_class   | 16412    | n
 ux_class  | 16402 | ux_class   | 16413    | n
 ux_class  | 16402 | ux_class   | 16414    | n
 ux_class  | 16402 | ux_class   | 16415    | n
 ux_class  | 16402 | ux_class   | 16416    | n
 ux_class  | 16402 | ux_class   | 16417    | n
 ux_class  | 16402 | ux_class   | 16418    | n
 ux_class  | 16402 | ux_class   | 16419    | n
 ux_class  | 16402 | ux_class   | 16420    | n
 ux_class  | 16402 | ux_class   | 16421    | n
 ux_class  | 16402 | ux_class   | 16422    | n
 ux_class  | 16402 | ux_class   | 16423    | n
 ux_class  | 16402 | ux_class   | 16424    | n
 ux_class  | 16402 | ux_class   | 16425    | n
 ux_class  | 16402 | ux_class   | 16426    | n
 ux_class  | 16402 | ux_class   | 16427    | n
 ux_class  | 16402 | ux_class   | 16428    | n
 ux_class  | 16402 | ux_class   | 16429    | n
 ux_class  | 16402 | ux_class   | 16430    | n
 ux_class  | 16402 | ux_class   | 16431    | n
 ux_class  | 16402 | ux_class   | 16432    | n
 ux_class  | 16402 | ux_class   | 16433    | n
 ux_class  | 16402 | ux_class   | 16434    | n
 ux_class  | 16402 | ux_class   | 16435    | n
 ux_class  | 16402 | ux_class   | 16436    | n
 ux_class  | 16402 | ux_class   | 16437    | n
 ux_class  | 16402 | ux_class   | 16438    | n
 ux_class  | 16402 | ux_class   | 16439    | n
 ux_class  | 16402 | ux_class   | 16440    | n
 ux_class  | 16402 | ux_class   | 16441    | n
 ux_class  | 16402 | ux_class   | 16442    | n
 ux_class  | 16402 | ux_class   | 16443    | n
 ux_class  | 16402 | ux_class   | 16444    | n
 ux_class  | 16402 | ux_class   | 16445    | n
 ux_class  | 16402 | ux_class   | 16446    | n
 ux_class  | 16402 | ux_class   | 16447    | n
 ux_class  | 16402 | ux_class   | 16448    | n
 ux_class  | 16402 | ux_class   | 16449    | n
 ux_class  | 16402 | ux_class   | 16450    | n
 ux_class  | 16402 | ux_class   | 16451    | n
 ux_class  | 16402 | ux_class   | 16452    | n
 ux_class  | 16402 | ux_class   | 16453    | n
 ux_class  | 16402 | ux_class   | 16454objid和classid指的是表本身。对于所有其他对象类型,此列为零。

ux_shdescription

目录ux_shdescription存储共享数据库对象的可选描述(注释)。可以使用COMMENT命令操作描述,并使用uxsql的\d命令查看。

另请参见ux_description,它为涉及单个数据库内对象的描述执行类似的功能。

与大多数系统目录不同,ux_shdescription在整个集群的所有数据库之间共享:每个集群只有一个ux_shdescription副本,而不是每个数据库一个。

ux_shdescription

列类型
描述
objoid
oid
(引用任何OID列)
此描述所涉及的对象的OID
classoid
oid
(引用
ux_class
.
oid

此对象出现在的系统目录的OID
description
text
作为此对象描述的任意文本

ux_shseclabel

目录ux_shseclabel存储共享数据库对象的安全标签。可以使用SECURITY LABEL命令来操作安全标签。要查看安全标签的更简单的方法,请参见ux_seclabels

另请参见ux_seclabel,它为涉及单个数据库内对象的安全标签执行类似的功能。

与大多数系统目录不同,ux_shseclabel在整个集群的所有数据库之间共享:每个集群只有一个ux_shseclabel副本,而不是每个数据库一个。

ux_shseclabel

列类型
描述
objoid
oid
(引用任何OID列)
此安全标签所涉及的对象的OID
classoid
oid
(引用
ux_class
.
oid
)
此对象出现在的系统目录的OID
provider
text
与此标签关联的标签提供程序
label
text
应用于此对象的安全标签

ux_statistic

目录ux_statistic存储有关数据库内容的统计数据。条目是由ANALYZE创建的,随后由查询规划器使用。请注意,所有统计数据本质上都是近似的,即使假设它是最新的。

通常,对于已分析的每个表列,都有一个条目,其中stainherit=false。如果表具有继承子项或分区,则还会创建第二个条目,其中stainherit=true。此行表示继承树上的列统计信息,即您将使用SELECT column FROM table* 看到的数据的统计信息,而stainherit=false行表示SELECT column FROM ONLY table 的结果。

ux_statistic还存储有关索引表达式值的统计数据。这些被描述为实际数据列;特别地,starelid引用索引。但是,对于普通的非表达式索引列,不会创建条目,因为它与基础表列的条目重复。目前,索引表达式的条目始终具有stainherit=false

由于不同类型的数据可能需要不同类型的统计信息,因此ux_statistic的设计不会假设它存储了什么样的统计信息。只有极其一般的统计信息(例如空值)在ux_statistic中具有专用列。其他所有内容都存储在“槽”中,这些槽是相关列的组,其内容由槽中的一个列中的代码号标识。有关详细信息,请参见src/include/catalog/ux_statistic.h

ux_statistic 不应该被公开读取,因为关于表内容的统计信息甚至可能被视为敏感信息。 (例如:薪资列的最小值和最大值可能非常有趣。)ux_stats是一个公开可读的视图,它只公开那些当前用户可以读取的表的信息。

ux_statistic

列类型
描述
starelid
oid
(引用
ux_class
.
oid

所描述的列所属的表或索引
staattnum
int2
(引用
ux_attribute
.
attnum

所描述的列的编号
stainherit
bool
如果为 true,则统计信息包括子表中的值,而不仅仅是指定关系中的值
stanullfrac
float4
该列条目中为 null 的比例
stawidth
int4
非 null 条目的平均存储宽度(以字节为单位)
stadistinct
float4
该列中不同的非 null 数据值的数量。 大于零的值是实际的不同值的数量。 小于零的值是表中行数的负数乘数的结果;例如,一个大约 80% 的值为非 null 值,每个非 null 值平均出现两次的列可以由
stadistinct
= -0.4 表示。 零值表示不知道不同值的数量
stakindN
int2
一个代码数字,指示存储在
ux_statistic
行的第N个“槽”中的统计信息的类型
staopN
oid
(引用
ux_operator
.
oid

用于导出存储在第N个“槽”中的统计信息的运算符。例如,一个直方图插槽将显示定义数据排序顺序的
<
运算符。如果统计类型不需要运算符,则为零
stacollN
oid
(引用
ux_collation
.
oid
)
用于派生存储在第N个

插槽

中的统计信息的排序规则。例如,可排序列的直方图插槽将显示定义数据排序顺序的排序规则。对于不可排序的数据,为零
stanumbersN
float4[]
适用于第N个

插槽

的相应类型的数字统计信息,如果插槽类型不涉及数字值,则为null
stavaluesN
anyarray
适用于第N个

插槽

的相应类型的列数据值,如果插槽类型不存储任何数据值,则为null。每个数组的元素值实际上是特定列的数据类型或相关类型,例如数组的元素类型,因此无法比
anyarray
更具体地定义这些列的类型

注意

在uxdb安全模式下禁止所有用户查看该系统表。

ux_statistic_ext

目录ux_statistic_ext保存了扩展查询计划统计信息的定义。该目录中的每一行对应于使用CREATE STATISTICS创建的一个统计对象

ux_statistic_ext

列类型
描述
oid
oid
行标识符
stxrelid
oid
(引用
ux_class
.
oid
)
包含此对象描述的列的表
stxname
name
统计对象的名称
stxnamespace
oid
(引用
ux_namespace
.
oid
)
包含此统计对象的命名空间的OID
stxowner
oid
(引用
ux_authid
.
oid
)
统计对象的所有者
stxstattarget
int4
stxstattarget
控制由
ANALYZE
为此统计对象累积的统计信息的详细程度。 零值表示不应收集任何统计信息。 负值表示使用引用列的统计目标的最大值(如果设置),否则使用系统默认的统计目标。
stxstattarget
的正值确定要收集的“最常见值”的目标数量
stxkeys
int2vector
(引用
ux_attribute

attnum

属性编号数组,指示此统计对象涵盖哪些表列; 例如,值
1 3
表示涵盖第一列和第三列
stxkind
char[]
包含启用的统计种类代码的数组;有效值为:d表示n-distinct统计信息,f表示函数依赖性统计信息, m表示最常见值(MCV)列表统计信息,以及e表示表达式统计信息
stxexprs
ux_node_tree
统计对象属性的表达式树(以
nodeToString()
表示)不是简单的列引用。这是一个每个表达式一个元素的列表。 如果所有统计对象属性都是简单引用,则为Null

ux_statistic_ext条目在CREATE STATISTICS期间完全填充,但实际统计值在那时不会计算。随后的ANALYZE命令计算所需的值,并填充ux_statistic_ext_data目录中的条目。

注意

在uxdb安全模式下禁止所有用户查看该系统表。

ux_statistic_ext_data

目录ux_statistic_ext_data保存了在ux_statistic_ext中定义的扩展查询计划统计数据。该目录中的每一行对应于使用CREATE STATISTICS创建的一个统计对象

通常情况下,对于每个已分析的统计对象,都会有一个条目,其中stxdinherit = false。如果表具有继承子项或分区,则还会创建一个stxdinherit = true的第二个条目。该行表示继承树上的统计对象,即您将在SELECT * FROM table* 中看到的数据的统计信息,而stxdinherit = false的行表示SELECT * FROM ONLY table的结果。

ux_statistic一样,ux_statistic_ext_data不应该对公众可读,因为其内容可能被视为敏感信息。(例如:列中最常见的值的组合可能非常有趣。)ux_stats_ext是一个公开可读的视图,它连接了ux_statistic_ext,仅公开那些当前用户可读的表和列的信息。

ux_statistic_ext_data

列类型
描述
stxoid
oid
(引用
ux_statistic_ext
.
oid
)
包含此数据定义的扩展统计对象
stxdinherit
bool
如果为 true,则统计信息包括子表中的值,而不仅仅是指定关系中的值
stxdndistinct
ux_ndistinct
N-distinct 计数,序列化为
ux_ndistinct
类型
stxddependencies
ux_dependencies
功能依赖统计信息,序列化为
ux_dependencies
类型
stxdmcv
ux_mcv_list
MCV(最常见值)列表统计信息,序列化为
ux_mcv_list
类型
stxdexpr
ux_statistic[]
每个表达式的统计信息,序列化为
ux_statistic
类型的数组

ux_subscription

目录ux_subscription包含所有现有的逻辑复制订阅。

与大多数系统目录不同,ux_subscription在整个集群的所有数据库之间共享:每个数据库不是一个副本,而是整个集群只有一个ux_subscription

普通用户被撤销访问subconninfo列的权限,因为它可能包含明文密码。

ux_subscription

列类型
描述
oid
oid
行标识符
subdbid
oid
(引用
ux_database
.
oid
)
订阅所在的数据库的OID
subskiplsn
ux_lsn
要跳过其更改的事务的完成LSN,如果是有效的LSN,则为
0/0
subname
name
订阅名称
subowner
oid
(引用
ux_authid
.
oid

订阅所有者
subenabled
bool
如果为真,则启用订阅并应进行复制
subbinary
bool
如果为真,则订阅将请求发布者以二进制格式发送数据
substream
bool
如果为真,则订阅将允许流式传输正在进行的事务
subtwophasestate
char
两阶段模式的状态代码:d = 禁用,p = 待启用,e = 已启用
subdisableonerr
bool
如果为真,则订阅将在其工作进程之一检测到错误时被禁用
subconninfo
text
与上游数据库的连接字符串
subslotname
name
上游数据库中复制插槽的名称(也用于本地复制源名称); null表示
NONE
subsynccommit
text
订阅的工作进程使用的
synchronous_commit
设置
subpublications
text[]
订阅的发布名称数组。这些引用在上游数据库中定义的发布

ux_subscription_rel

目录ux_subscription_rel包含每个订阅中每个复制关系的状态。这是多对多映射。

此目录仅包含在运行CREATE SUBSCRIPTIONALTER SUBSCRIPTION ... REFRESH PUBLICATION之后订阅已知的表。

ux_subscription_rel

列类型
描述
srsubid
oid
(引用
ux_subscription
.
oid
)
订阅参考资料
srrelid
oid
(引用
ux_class
.
oid
)
参照关系
srsubstate
char
状态代码:i=初始化,d=数据正在被拷贝,f=填好的表格副本,s=已同步,r=就绪(普通复制)
srsublsn
ux_lsn
用于同步协调的状态更改的远程lsn s或r国家,否则无效

ux_tablespace

目录ux_tablespace存储有关可用表空间的信息。可以将表放置在特定的表空间中,以帮助管理磁盘布局。

与大多数系统目录不同,ux_tablespace在整个集群的所有数据库之间共享:每个集群只有一个ux_tablespace副本,而不是每个数据库一个。

ux_tablespace

列类型
描述
oid
oid
行标识符
spcname
name
表空间名称
spcowner
oid
(引用
ux_authid
.
oid
)
表空间的所有者,通常是创建它的用户
spcacl
aclitem[]
访问权限
spcoptions
text[]
表空间级别选项,作为

keyword=value

字符串

ux_transform

目录ux_transform存储有关转换的信息,转换是一种将数据类型适应过程性语言的机制。

ux_transform

列类型
描述
oid
oid
行标识符
trftype
oid
(引用
ux_type
.
oid
)
此转换所用的数据类型的OID
trflang
oid
(引用
ux_language
.
oid
)
此转换所用的语言的OID
trffromsql
regproc
(引用
ux_proc
.
oid
)
在将数据类型转换为过程性语言(例如函数参数)的输入时使用的函数的OID。如果应使用默认行为,则存储零
trftosql
regproc
(引用
ux_proc
.
oid

在将过程语言的输出(例如返回值)转换为数据类型时使用的函数的OID。如果应使用默认行为,则存储零

ux_trigger

目录ux_trigger存储表和视图上的触发器。

ux_trigger

列类型
描述
oid
oid
行标识符
tgrelid
oid
(引用
ux_class
.
oid
)
此触发器所在的表
tgparentid
oid
(引用
ux_trigger
.
oid
)
此触发器从中克隆的父触发器(当创建或附加到分区表时会发生这种情况);如果不是克隆,则为零
tgname
name
触发器名称(在同一表的触发器中必须唯一)
tgfoid
oid
(引用
ux_proc
.
oid
)
要调用的函数
tgtype
int2
触发器类型(例如,行级触发器、语句级触发器等)
tgenabled
char
控制触发器在哪些
session_replication_role
模式下触发。O = 触发器在“origin”和“local”模式下触发, D = 触发器已禁用, R = 触发器在“replica”模式下触发,A = 触发器始终触发
tgisinternal
bool
如果触发器是内部生成的(通常是为了强制执行由
tgconstraint
标识的约束),则为True
tgconstrrelid
oid
(引用
ux_class
.
oid
)
引用完整性约束的表(如果触发器不是用于引用完整性约束,则为零)
tgconstrindid
oid
(引用
ux_class
.
oid
)
支持唯一性、主键、引用完整性或排除约束的索引(如果触发器不是用于这些类型的约束,则为零)
tgconstraint
bool
(引用
ux_constraint
.
oid
)
与触发器相关联的
ux_constraint
条目(如果触发器不是用于约束,则为零)
tggenerated
char
触发器是否为生成的触发器
tgdeferrable
bool
如果约束触发器是可延迟的,则为True
tginitdeferred
bool
如果约束触发器最初是延迟的,则为True
tgnargs
int2
传递给触发器函数的参数字符串数
tgattr
int2vector
如果触发器是特定于列的,则为列号;否则为空数组
tgargs
bytea
传递给触发器的参数字符串,每个字符串以NULL结尾
tgqual
ux_node_tree
表达式树(在
nodeToString()
中)
tgconfig
text[]
触发器的配置选项
tgoldtable
name
OLD TABLE

REFERENCING
子句名称,如果有的话,则为其名称;否则为
null
tgnewtable
name
NEW TABLE

REFERENCING
子句名称,如果有的话,则为其名称;否则为
null

目前,仅支持针对UPDATE事件的特定列触发,因此tgattr仅适用于该事件类型。 tgtype可能也包含其他事件类型的位,但这些被认为是表范围的,无论tgattr中包含什么。

注意

tgconstraint非零时,tgconstrrelidtgconstrindidtgdeferrabletginitdeferred与引用的ux_constraint条目大多是冗余的。但是,非可延迟触发器可能与可延迟约束关联:外键约束可以有一些可延迟和一些不可延迟的触发器。

注意

如果一个关系在此目录中具有任何触发器,则ux_class.relhastriggers必须为true

示例

下面的示例演示检索表上所有触发器的查询:

SELECT tgname, tgtype, proname
FROM ux_trigger
JOIN ux_proc ON (tgfoid = ux_proc.oid)
WHERE tgrelid = 'mytable'::regclass;

ux_ts_config

ux_ts_config 目录包含代表文本搜索配置的条目。配置指定特定的文本搜索解析器和用于解析器输出令牌类型的每个字典的列表。解析器显示在ux_ts_config 条目中,但令牌到字典的映射由ux_ts_config_map 中的子条目定义。

ux_ts_config

列类型
描述
oid
oid
行标识符
cfgname
name
文本搜索配置名称
cfgnamespace
oid
(引用
ux_namespace
.
oid
)
包含此配置的命名空间的 OID
cfgowner
oid
(引用
ux_authid
.
oid
)
配置的所有者
cfgparser
oid
(引用
ux_ts_parser

oid

此配置的文本搜索解析器的OID

ux_ts_config_map

ux_ts_config_map 目录包含条目,显示每个文本搜索配置的解析器的每个输出令牌类型应查询哪些文本搜索词典以及查询顺序。

ux_ts_config_map

列类型
描述
mapcfg
oid
(引用
ux_ts_config
.
oid
)
拥有此映射条目的
ux_ts_config
条目的 OID
maptokentype
int4
配置解析器发出的令牌类型
mapseqno
int4
查询此条目的顺序(首先查询较低的
mapseqno
mapdict
oid
(引用
ux_ts_dict
.
oid
)
要查询的文本搜索词典的 OID

ux_ts_dict

ux_ts_dict目录包含定义文本搜索字典的条目。字典依赖于文本搜索模板,该模板指定了所有需要的实现函数;字典本身为模板支持的用户可设置参数提供值。这种分工允许非特权用户创建字典。参数由文本字符串dictinitoption 指定,其格式和含义因模板而异。

ux_ts_dict

列类型
描述
oid
oid
行标识符
dictname
name
文本搜索字典名称
dictnamespace
oid
(引用
ux_namespace
.
oid
)
包含此字典的命名空间的 OID
dictowner
oid
(引用
ux_authid
.
oid
)
字典的所有者
dicttemplate
oid
(引用
ux_ts_template

oid

该字典的文本搜索模板的OID
dictinitoption
text
模板的初始化选项字符串

ux_ts_parser

ux_ts_parser 目录包含定义文本搜索解析器的条目。解析器负责将输入文本分割成词元,并为每个词元分配一个标记类型。由于解析器必须由C语言级别的函数实现,因此创建新解析器的权限仅限于数据库超级用户。

ux_ts_parser

列类型
描述
oid
oid
行标识符
prsname
name
文本搜索解析器名称
prsnamespace
oid
(引用
ux_namespace
.
oid
)
包含此解析器的命名空间的 OID
prsstart
regproc
(引用
ux_proc
.
oid
)
解析器启动函数的 OID
prstoken
regproc
(引用
ux_proc
.
oid
)
解析器下一个标记函数的OID
prsend
regproc
(引用
ux_proc
.
oid
)
解析器关闭函数的OID
prsheadline
regproc
(引用
ux_proc
.
oid
)
解析器标题函数的OID(如果没有则为零)
prslextype
regproc
(引用
ux_proc
.
oid
)
解析器的词法类型函数的OID

ux_ts_template

ux_ts_template 目录包含定义文本搜索模板的条目。模板是一类文本搜索字典的实现框架。由于模板必须由C语言级别的函数实现,因此创建新模板的权限仅限于数据库超级用户。

ux_ts_template

列类型
描述
oid
oid
行标识符
tmplname
name
文本搜索模板名称
tmplnamespace
oid
(引用
ux_namespace
.
oid
)
包含此模板的名称空间的样例
tmplinit
regproc
(引用
ux_proc
.
oid
)
模板初始化功能的功能(如果没有,则为零)
tmpllexize
regproc
(引用
ux_proc
.
oid
)
模板的词汇化功能

ux_type

目录ux_type存储有关数据类型的信息。基本类型和枚举类型(标量类型)是使用CREATE TYPE创建的,域使用CREATE DOMAIN创建。对于数据库中的每个表,都会自动创建一个复合类型,以表示表的行结构。还可以使用CREATE TYPE AS创建复合类型。

ux_type

列类型
描述
oid
oid
行标识符
typname
name
数据类型名称
typnamespace
oid
(引用
ux_namespace
.
oid

包含此类型的命名空间的OID
typowner
oid
(引用
ux_authid
.
oid

类型的所有者
typlen
int2
对于固定大小的类型,
typlen
是类型内部表示中的字节数。但对于可变长度的类型,
typlen
为-1
typbyval
bool
如果类型是按值传递的,则为真;如果类型是按引用传递的,则为假
typtype
char
typtype可以是: b表示一个基类, c表示一个组合类型(例如一个表的行类型), d表示一个域, e表示一个枚举类型, p表示一个伪类型,r表示一个范围类型, 或 o表示一个集合类型
typcategory
char
类型的类别:A(数组)、B(布尔)、C(复合类型)、D(日期/时间)、E(枚举类型)、G(几何)、I(网络地址)、N(数字)、P(伪类型)、S(字符串)、T(文本)、U(未知类型)、V(void)
typispreferred
bool
如果此类型是首选类型,则为真
typdelim
char
用于分隔数组元素的字符
typrelid
oid
(引用
ux_class
.
oid

如果此类型是表的行类型,则为表的OID;否则为0
typelem
oid
(引用
ux_type
.
oid

如果此类型是数组,则为数组元素类型的OID;否则为0
typarray
oid
(引用
ux_type
.
oid

如果此类型是数组,则为数组类型的OID;否则为0
typinput
regproc
(引用
ux_proc
.
oid

用于将外部表示转换为内部表示的输入函数的OID
typoutput
regproc
(引用
ux_proc
.
oid

用于将内部表示转换为外部表示的输出函数的OID
typreceive
regproc
(引用
ux_proc
.
oid

用于接收二进制输入的函数的OID
typsend
regproc
(引用
ux_proc
.
oid

用于发送二进制输出的函数的OID
typmodin
regproc
(引用
ux_proc
.
oid

用于将文本表示形式的类型修饰符转换为内部表示的函数的OID
typmodout
regproc
(引用
ux_proc
.
oid

用于将内部表示的类型修饰符转换为文本表示形式的函数的OID
typanalyze
regproc
(引用
ux_proc
.
oid

用于分析类型的函数的OID
typalign
char
类型的对齐方式:c(无对齐)、s(短对齐)、i(整数对齐)、d(双精度对齐)、t(时间戳对齐)、n(名称对齐)
typstorage
char
类型的存储:p(普通)、e(外部)、x(扩展)
typnotnull
typlen
可变长度类型,为负数。 -1 表示“
varlena
”类型(具有长度字), -2 表示以空字符结尾的 C 字符串
typbyval
bool
typbyval
确定内部例程是按值还是按引用传递此类型的值。 如果
typlen
不是 1、2 或 4(或在数据类型为 8 字节的机器上为 8),则
typbyval
最好为 false。 可变长度类型始终按引用传递。请注意,即使长度允许按值传递,
typbyval
也可能为 false
typcategory
char
typcategory
是数据类型的任意分类,用于解析器确定应该“首选”哪些隐式转换
typispreferred
bool
如果该类型是其
typcategory
中的首选转换目标,则为 True
typisdefined
bool
如果该类型已定义,则为 True;如果这是尚未定义的类型的占位符条目,则为 false。 当
typisdefined
为 false 时,除了类型名称、命名空间和 OID 之外,不能依赖于任何内容
typdelim
char
解析数组输入时分隔两个此类型的值的字符。请注意,分隔符与数组元素数据类型相关联,而不是数组数据类型
typrelid
oid
(引用
ux_class
.
oid

如果这是复合类型,则此列指向定义相应表的
ux_class
条目。 (对于独立的复合类型,
ux_class
条目实际上并不表示表,但仍然需要该类型的
ux_attribute
条目链接。) 非复合类型为零
typsubscript
regproc
(引用
ux_proc
.
oid

下标处理函数的OID,如果此类型不支持下标,则为零。真正的数组类型具有
typsubscript
=
array_subscript_handler
,但其他类型可能具有其他处理程序函数以实现专门的下标行为
typelem
oid
(引用
ux_type
.
oid

如果
typelem
不为零,则它标识
ux_type
中的另一行,定义下标引用产生的类型。如果
typsubscript
为零,则应将其设置为零。但是,如果处理程序不需要
typelem
来确定下标结果类型,则可以将其设置为零。请注意,
typelem
依赖关系被认为意味着元素类型在此类型中的物理包含;因此,DDL更改可能会受到此类型的存在的限制
typarray
oid
(引用
ux_type
.
oid

如果
typarray
不为零,则它标识
ux_type
中的另一行,该行是具有此类型为元素的真实数组类型
typinput
regproc
(引用
ux_proc
.
oid

输入转换函数(文本格式)
typoutput
regproc
(引用
ux_proc
.
oid

输出转换函数(文本格式)
typreceive
regproc
(引用
ux_proc
.
oid

输入转换函数(二进制格式),如果没有则为零
typsend
regproc
(引用
ux_proc
.
oid

输出转换函数(二进制格式),如果没有则为零
typmodin
regproc
(引用
ux_proc
.
oid

类型修改器输入函数,如果类型不支持修改器,则为零
typmodout
regproc
(引用
ux_proc
.
oid

类型修改器输出函数,如果要使用标准格式,则为零
typanalyze
regproc
(引用
ux_proc
.
oid

自定义
ANALYZE
函数,如果要使用标准函数,则为零
typalign
char
typalign
是存储此类型的值所需的对齐方式。它适用于磁盘上的存储以及
UXsinoDB
中值的大多数表示形式。当连续存储多个值时,例如在磁盘上表示完整行时,在此类型的数据之前插入填充,以便它从指定的边界开始。对齐参考是序列中第一个数据的开头。可能的值为:
c =
char
对齐,即不需要对齐
s =
short
对齐(在大多数机器上为2个字节)
i =
int
对齐(在大多数机器上为4个字节)
d =
double
对齐(在许多机器上为8个字节,但绝不是全部)
typstorage
char
typstorage
告诉varlena类型(那些具有
typlen
= -1的类型)是否准备好进行压缩,并且此类型的属性的默认策略是什么。可能的值为:
p(plain):值必须始终以纯文本形式存储(非varlena类型始终使用此值)
e(external):值可以存储在辅助

TOAST

关系中
m(main):值可以压缩并存储在内联中
x(扩展):值可以压缩和/或移动到辅助关系中
toastable类型的通常选择是x。请注意,m值也可以移动到辅助存储中,但只能作为最后的手段(e和x值首先移动)
typnotnull
bool
typnotnull
表示类型上的非空约束。仅用于域
typbasetype
oid
(引用
ux_type
.
oid
)
如果这是一个域,那么
typbasetype
标识了此类型所基于的类型。如果此类型不是域,则为零
typtypmod
int4
域使用
typtypmod
记录要应用于其基本类型的
typmod
(如果基本类型不使用
typmod
,则为 -1)。如果此类型不是域,则为 -1
typndims
int4
typndims
是域上数组的数组维数(即,
typbasetype
是数组类型)。 对于不是域上的其他类型,它为零
typcollation
oid
(引用
ux_collation
.
oid
)
typcollation
指定类型的排序规则。如果类型不支持排序规则,则为零。支持排序规则的基本类型将在此处具有非零值,通常为
DEFAULT_COLLATION_OID
。对于可排序类型的域,其排序规则 OID 可以与其基本类型的排序规则 OID 不同,如果为域指定了排序规则,则如此
typdefaultbin
ux_node_tree
如果
typdefaultbin
不为 null,则它是类型的默认表达式的
nodeToString()
表示形式。仅用于域
typdefault
text
如果类型没有关联的默认值,则
typdefault
为 null。如果
typdefaultbin
不为 null,则
typdefault
必须包含由
typdefaultbin
表示的默认表达式的人类可读版本。如果
typdefaultbin
为 null 而
typdefault
不为 null,则
typdefault
是类型默认值的外部表示形式,可以将其提供给类型的输入转换器以生成常量
typacl
aclitem[]
访问权限

注意

对于用于系统表中的固定宽度类型,ux_type中定义的大小和对齐方式必须与编译器在表示表行的结构中布置列的方式相一致。

typcategory代码列出了 typcategory 的系统定义值。任何将来添加到此列表中的内容也将是大写 ASCII 字母。所有其他ASCII字符都保留给用户定义的类别。

typcategory代码

代码类别
A数组类型
B布尔类型
C复合类型
D日期/时间类型
E枚举类型
G几何类型
I网络地址类型
N数字类型
P伪类型
R范围类型
S字符串类型
T时间跨度类型
U用户定义类型
V位串类型
X未知类型
Z内部使用类型
Y可变数组类型
L嵌套表类型

ux_user_mapping

目录ux_user_mapping存储本地用户到远程用户的映射。普通用户无法访问此目录,请使用视图ux_user_mappings代替。

ux_user_mapping

列类型
描述
oid
oid
行标识符
umuser
oid
(引用
ux_authid
.
oid
)
被映射的本地角色的OID,如果用户映射是公共的,则为零
umserver
oid
(引用
ux_foreign_server
.
oid
)
包含此映射的外部服务器的OID
umoptions
text[]
用户映射特定选项,作为“keyword=value”字符串

2.系统视图

除了系统目录之外,UXsinoDB还提供了许多内置视图。一些系统视图提供了方便的访问系统目录上一些常用查询的方式。其他视图提供了访问内部服务器状态的方式。

信息模式提供了一组重叠系统视图功能的替代视图。由于信息模式是SQL 标准,而这里描述的视图是特定于 UXsinoDB 的,如果信息模式提供了所需的所有信息,通常最好使用信息模式。

系统视图 列出了这里描述的系统视图。每个视图的更详细文档如下。

概述

系统视图 列出了系统视图。下面是每个目录的更详细的文档。除非另有说明,否则这里描述的所有视图都是只读的。

系统视图

视图名称目的
ux_available_extensions可用扩展
ux_available_extension_versions扩展的可用版本
ux_backend_memory_contexts后端内存上下文
ux_config编译时配置参数
ux_cursors打开的游标
ux_file_settings配置文件内容的摘要
ux_group数据库用户组
ux_hba_file_rules客户端身份验证配置文件内容的摘要
ux_ident_file_mappings客户端用户名映射配置文件内容的摘要
ux_indexes索引
ux_locks当前持有或等待的锁
ux_matviews物化视图
ux_policies策略
ux_prepared_statements预处理语句
ux_prepared_xacts预处理事务
ux_publication_tables发布及其关联表的信息
ux_replication_origin_status复制源的信息,包括复制进度
ux_replication_slots复制槽信息
ux_roles数据库角色
ux_rules规则
ux_seclabels安全标签
ux_sequences序列
ux_settings参数设置
ux_shadow数据库用户
ux_shmem_allocations共享内存分配
ux_stats规划器统计信息
ux_stats_ext扩展规划器统计信息
ux_stats_ext_exprs表达式的扩展规划器统计信息
ux_tables
ux_timezone_abbrevs时区缩写
ux_timezone_names时区名称
ux_user数据库用户
ux_views视图

ux_available_extensions

ux_available_extensions 视图列出了可供安装的扩展。 另请参见ux_extension目录,其中显示了当前安装的扩展。

ux_available_extensions

列类型
描述
name
name
扩展名
default_version
text
默认版本的名称,如果没有指定则为
NULL
installed_version
text
扩展当前安装的版本,如果未安装则为
NULL
comment
text
扩展控制文件中的注释字符串

ux_available_extensions 视图是只读的。

ux_available_extension_versions

ux_available_extension_versions 视图列出了可供安装的特定扩展版本。 另请参见ux_extension目录,其中显示了当前安装的扩展。

ux_available_extension_versions

列类型
描述
name
name
扩展名
version
text
版本名称
installed
bool
如果当前安装了此扩展的此版本,则为 True
superuser
bool
如果只有超级用户可以安装此扩展,则为 True
trusted
bool
如果非超级用户具有适当的权限,则可以安装扩展,则为 True
relocatable
bool
如果扩展可以重定位到另一个模式,则为 True
schema
name
必须安装扩展的模式名称,如果部分或完全可重定位,则为
NULL
requires
name []
先决条件扩展的名称,如果没有则为
NULL
comment
text
扩展控制文件中的注释字符串

ux_available_extension_versions视图是只读的。

ux_backend_memory_contexts

视图ux_backend_memory_contexts显示与当前会话相关的服务器进程的所有内存上下文。

ux_backend_memory_contexts对应每个内存上下文一行。

ux_backend_memory_contexts

列类型
描述
name
text
内存上下文的名称
ident
text
内存上下文的标识信息。该字段被截断为1024字节
parent
text
该内存上下文的父级名称
level
int4
该上下文在上下文树中距离TopMemoryContext的距离
total_bytes
int8
为该内存上下文分配的总字节数
total_nblocks
int8
为该内存上下文分配的总块数
free_bytes
int8
以字节为单位的可用空间
free_chunks
int8
空闲块的总数
used_bytes
int8
以字节为单位的已使用空间

默认情况下,ux_backend_memory_contexts 视图只能由超级用户或具有 ux_read_all_stats角色权限的角色进行读取。

ux_config

视图ux_config描述了当前安装的UXsinoDB版本的编译时配置参数。例如,它可用于希望与UXsinoDB进行接口的软件包,以便找到所需的头文件和库。它提供与ux_config UXsinoDB客户端应用程序相同的基本信息。

默认情况下,只有超级用户才能读取ux_config视图。

ux_config

列类型
描述
name
text
参数名称
setting
text
参数值

ux_cursors

ux_cursors 视图列出了当前可用的游标。游标可以通过以下几种方式定义:

  • 通过 SQL 中的 DECLARE 语句

  • 通过前端/后端协议中的 Bind 消息

  • 通过服务器编程接口(SPI)定义

ux_cursors 视图显示由任何这些方式创建的游标。游标仅在定义它们的事务期间存在,除非它们已声明为 WITH HOLD。因此,非可保留游标仅在其创建事务结束之前存在于视图中。

注意

游标在内部用于实现 UXsinoDB 的某些组件,例如过程语言。因此,ux_cursors 视图可能包括未由用户显式创建的游标。

ux_cursors

列类型
描述
name
text
游标的名称
statement
text
提交以声明此游标的逐字查询字符串
is_holdable
bool
如果光标是可保持的(即在声明光标的事务提交后可以访问),则为
true
;否则为
false
is_binary
bool
如果光标是以
BINARY
方式声明的,则为
true
;否则为
false
is_scrollable
bool
如果光标是可滚动的(即允许以非顺序方式检索行),则为
true
;否则为
false
creation_time
timestamptz
声明光标的时间

ux_cursors视图是只读的。

ux_file_settings

视图ux_file_settings提供了服务器配置文件的摘要。每个文件中出现的“name =value”条目都会在此视图中显示一行,注明该值是否能够成功应用。可能会出现额外的行,用于显示与“name=value”条目无关的问题,例如文件中的语法错误。

此视图有助于检查计划中的配置文件更改是否有效,或诊断以前的故障。请注意,此视图报告文件的当前内容,而不是服务器上次应用的内容。(ux_settings视图通常足以确定。)

默认情况下,只有超级用户才能读取ux_file_settings视图。

ux_file_settings

列类型
描述
sourcefile
text
配置文件的完整路径名
sourceline
int4
条目出现在配置文件中的行号
seqno
int4
处理条目的顺序(1..n)
name
text
配置参数名称
setting
text
要分配给参数的值
applied
bool
如果该值可以成功应用,则为True
error
text
如果不为空,则为指示为什么无法应用此条目的错误消息

如果配置文件包含语法错误或无效的参数名称,则服务器将不会尝试从中应用任何设置,因此所有applied字段都将读取为false。在这种情况下,将有一个或多个具有非空error字段的行,指示问题。 否则,如果可能,将应用单个设置。如果无法应用单个设置(例如,无效值或在服务器启动后无法更改设置),则error字段中将有适当的消息。另一种条目可能具有applied =false的方式是被同一参数名称的后续条目覆盖;这种情况不被视为错误,因此error字段中没有任何内容。

ux_group

视图ux_group它显示了所有标记为不具有rolcanlogin权限的角色的名称和成员,这是一组被用作组的角色的近似集合。

ux_group

列类型
描述
groname
name
(引用
ux_authid
.
rolname
)
组的名称
grosysid
oid
(引用
ux_authid
.
oid
)
此组的ID
grolist
oid[]
(引用
ux_authid
.
oid
)
包含此组中角色的ID的数组

ux_hba_file_rules

视图ux_hba_file_rules提供了客户端身份验证配置文件ux_hba.conf的内容摘要。每个非空、非注释行在此视图中都有一行,其中包含指示规则是否能够成功应用的注释。

此视图可用于检查计划中的身份验证配置文件更改是否有效,或诊断以前的故障。请注意,此视图报告的是文件的当前内容,而不是服务器上最后加载的内容。

默认情况下,只有超级用户才能读取ux_hba_file_rules视图。

ux_hba_file_rules

列类型
描述
line_number
int4
此规则在
ux_hba.conf
中的行号
type
text
连接类型
database
text[]
适用于此规则的数据库名称列表
user_name
text[]
适用于此规则的用户和组名称列表
address
text
主机名或IP地址,或其中之一:
all

samehost

samenet

md5

password

peer

radius

cert

pam

ldap

gss

sspi

krb5
,对于本地连接为空
netmask
text
网络掩码,仅适用于
samenet
地址,如果不适用则为空
auth_method
text
身份验证方法,例如
md5

password

peer

radius

cert

pam

ldap

gss

sspi

krb5
auth_option
text[]
身份验证选项,例如
map

noinherit

notrust
comments
text
ux_hba.conf
中此规则的注释
options
text[]
认证方法指定的选项,如果有的话
error
text
如果不为 null,则表示为什么无法处理此行的错误消息

通常,反映不正确条目的行只会有 line_numbererror 字段的值。

此视图的输出与ux_hba.conf文件的内容相同,但是,此视图不包括ux_hba.conf文件中的注释行和空行。

示例

SELECT * FROM ux_hba_file_rules;

line_number | type  | database | user_name | address | netmask | auth_method | auth_option | comments

-------------+-------+----------+-----------+---------+---------+-------------+-------------+---------
1           | local |          |           |         |         | trust       |             |

2           | host  | all      | all       | 0.0.0.0 | 0.0.0.0 | md5         |             |

3           | host  | all      | all       | ::/0    |         | md5         |             |

4           | host  | all      | all       | 127.0.0.1/32|     | md5         |             |

5           | host  | all      | all       | ::1/128 |         | md5         |             |

(5 rows)

ux_ident_file_mappings

视图ux_ident_file_mappings提供了客户端用户名映射配置文件ux_ident.conf的内容摘要。对于文件中的每个非空、非注释行,此视图中都会出现一行,其中包含是否能够成功应用映射的注释。

此视图可用于检查计划中的身份验证配置文件更改是否有效,或诊断以前的故障。请注意,此视图报告的是文件的当前内容,而不是服务器上最后加载的内容。

默认情况下,只有超级用户才能读取ux_ident_file_mappings视图。

ux_ident_file_mappings

列类型
描述
line_number
int4
ux_ident.conf
文件中此映射的行号
map_name
text
映射的名称
sys_name
text
客户端检测到的用户名
ux_username
text
请求的UXsinoDB用户名
error
text
如果不是
NULL
,则表示无法处理此行的错误消息

通常,反映不正确输入的行只会有 line_numbererror 字段的值。

ux_indexes

视图ux_indexes提供了有关数据库中每个索引的有用信息。

ux_indexes

列类型
描述
schemaname
name
(引用
ux_namespace
.
nspname
)
包含表和索引的模式名称
tablename
name
(引用
ux_class
.
relname
)
索引所属的表的名称
indexname
name
(引用
ux_class
.
relname
)
索引的名称
tablespace
name
(引用
ux_tablespace
.
spcname
)
包含索引的表空间的名称(如果是数据库的默认值,则为null)
indexdef
text
索引定义(重建的
CREATE INDEX
命令)

ux_locks

视图ux_locks提供了访问数据库服务器中活动进程持有的锁的信息。

ux_locks每个活动锁定对象、请求的锁定模式和相关进程包含一行。因此,如果多个进程持有或等待锁定同一锁定对象,则该锁定对象可能会出现多次。但是,当前没有锁定的对象将不会出现。

有几种不同类型的锁定对象:整个关系(例如,表)、关系的单个页面、关系的单个元组、事务ID(虚拟和永久ID)和一般数据库对象(通过类OID和对象OID标识,与ux_descriptionux_depend中的方式相同)。此外,扩展关系的权利表示为单独的锁定对象,更新ux_database.datfrozenxid的权利也是如此。此外,可以对具有用户定义含义的数字进行“咨询”锁定。

ux_locks

列类型
描述
locktype
text
锁定对象的类型:
relation

extend

frozenid

page

tuple

transactionid

virtualxid

spectoken

object

userlock
,或者
advisory
database
oid
(引用
ux_database
.
oid

锁目标所在的数据库的OID,如果目标是共享对象,则为零,如果目标是事务ID,则为null
relation
oid
(引用
ux_class
.
oid

锁定的关系的OID,如果目标不是关系或关系的一部分,则为null
page
int4
关系中锁定的页面号,如果目标不是关系页面或元组,则为null
tuple
int2
页面中锁定的元组号,如果目标不是元组,则为null
virtualxid
text
锁定的虚拟事务ID,如果目标不是虚拟事务ID,则为null
transactionid
xid
锁定的事务ID,如果目标不是事务ID,则为null
classid
oid
(引用
ux_class
.
oid

包含锁定目标的系统目录的OID,如果目标不是一般数据库对象,则为null
objid
oid
(引用任何OID列)
系统目录中锁定目标的OID,如果目标不是一般数据库对象,则为null
objsubid
int2
锁定的列号(
classid

objid
指的是表本身), 如果目标是其他一般数据库对象,则为零,如果目标不是一般数据库对象,则为null
virtualtransaction
text
持有或等待此锁的事务的虚拟ID
pid
int4
持有或等待此锁的服务器进程的进程ID,如果锁由准备好的事务持有,则为null
mode
text
此进程持有或期望的锁模式的名称
granted
bool
如果持有锁,则为True,如果等待锁,则为False
fastpath
bool
如果通过快速路径获取锁,则为True,如果通过主锁表获取,则为False
waitstart
timestamptz
服务器进程开始等待此锁的时间,如果持有锁,则为null。请注意,即使等待开始后很短的时间,此值也可能为null,尽管
granted

false

granted为true表示该进程持有锁。False表示该进程当前正在等待获取此锁,这意味着至少有一个其他进程正在持有或等待同一锁定对象上的冲突锁模式。等待进程将休眠,直到其他锁定被释放(或检测到死锁情况)。单个进程最多可以等待获取一个锁。

在运行事务期间,服务器进程在事务的虚拟事务ID上持有独占锁。如果为事务分配了永久ID(通常仅在事务更改数据库状态时发生),则它还将在事务的永久事务ID上持有独占锁,直到事务结束。当进程发现有必要等待另一个事务结束时,它会尝试在另一个事务的ID上获取共享锁(根据情况是虚拟ID或永久ID)。只有当另一个事务终止并释放其锁时,才会成功获取共享锁。

虽然元组是一种可锁定的对象类型,但关于行级锁的信息存储在磁盘上,而不是在内存中,因此行级锁通常不会出现在此视图中。如果进程正在等待行级锁,则通常会在视图中显示为等待当前持有者的永久事务ID。

可以在由单个bigint值或两个整数值组成的键上获取咨询锁。bigint键在classid列中显示其高阶半部分,在objid列中显示其低阶半部分,并且objsubid等于1。可以使用表达式(classid::bigint << 32) | objid::bigint重新组装原始的bigint值。整数键在classid列中显示第一个键,在objid列中显示第二个键,并且objsubid等于2。键的实际含义由用户决定。咨询锁仅对每个数据库有效,因此database列对于咨询锁是有意义的。

ux_locks提供了数据库群集中所有锁的全局视图,而不仅仅是与当前数据库相关的锁。虽然可以将其relation列与ux_classux_namespace表联接起来,但请注意,这些表中的行可能已被锁定,因此可能无法访问它们。

针对ux_classoid进行锁定,只能正确地用于当前数据库中的关系(即database列为当前数据库的OID或零的关系)。

可以将pid列与ux_stat_activity视图的pid列连接起来,以获取有关持有或等待每个锁的会话的更多信息,例如:

SELECT * FROM ux_locks pl LEFT JOIN ux_stat_activity psa ON pl.pid = psa.pid;

此外,如果使用了预处理事务,则可以将virtualtransaction列连接到ux_prepared_xacts视图的transaction列,以获取有关持有锁的预处理事务的更多信息。(预处理事务永远不会等待锁,但它继续持有运行时获取的锁。)例如:

SELECT * FROM ux_locks pl LEFT JOIN ux_prepared_xacts ppx ON pl.virtualtransaction = '-1/' || ppx.transaction;

虽然可以通过将ux_locks与自身连接来获取有关哪些进程阻止其他进程的信息,但这在细节上非常难以正确实现。这样的查询将不得不编码有关哪些锁模式与哪些其他锁模式冲突的知识。更糟糕的是,ux_locks视图不公开关于哪些进程在锁等待队列中领先于哪些其他进程以及哪些进程是代表哪些其他客户端会话运行的并行工作者的信息。最好使用ux_blocking_pids()函数来确定等待进程被阻止在哪个进程后面。

ux_locks视图显示来自常规锁管理器和谓词锁管理器的数据,这些是独立的系统;此外,常规锁管理器将其锁分为常规锁和快速路径锁。这些数据不能保证完全一致。查询视图时,快速路径锁(fastpath=true)的数据从每个后端逐个收集,而不冻结整个锁管理器的状态,因此在收集信息时可能会获取或释放锁。但是请注意,这些锁已知不与当前放置的任何其他锁冲突。在查询所有后端的快速路径锁之后,剩余的常规锁管理器作为一个单元被锁定,并收集所有剩余锁的一致快照作为原子操作。解锁常规锁管理器后,谓词锁管理器类似地被锁定,并收集所有谓词锁作为原子操作。因此,除了快速路径锁之外,每个锁管理器都将提供一组一致的结果,但由于我们不同时锁定两个锁管理器,因此在查询常规锁管理器之后并在查询谓词锁管理器之前,锁可能会被获取或释放。

如果非常频繁地访问此视图,则锁定常规和/或谓词锁管理器可能会对数据库性能产生一些影响。锁仅保持必要的最短时间。获取锁管理器的数据,但这并不能完全消除性能影响的可能性。

ux_matviews

视图ux_matviews提供了有关数据库中每个物化视图的有用信息。

ux_matviews

列类型
描述
schemaname
name
(引用
ux_namespace
.
nspname
)
包含物化视图的模式名称
matviewname
name
(引用
ux_class
.
relname
)
物化视图的名称
matviewowner
name
(引用
ux_authid
.
rolname
)
物化视图所有者的名称
tablespace
name
(引用
ux_tablespace
.
spcname
)
包含物化视图的表空间名称(如果为数据库的默认值,则为null)
hasindexes
bool
如果物化视图具有(或最近具有)任何索引,则为True
ispopulated
bool
如果物化视图当前已填充,则为True
definition
text
物化视图定义(重构的
SELECT
查询)

ux_policies

视图ux_policies提供了有关数据库中每个行级安全策略的有用信息。

ux_policies

列类型
描述
schemaname
name
(引用
ux_namespace
.
nspname
)
包含表策略的模式名称
tablename
name
(引用
ux_class
.
relname
)
策略所在的表名称
policyname
name
(引用
ux_policy
.
polname
)
策略名称
permissive
text
策略是宽容的还是限制性的?
roles
name[]
适用于此策略的角色
cmd
text
策略应用的命令类型
qual
text
将添加到安全屏障资格的表达式,用于适用于此策略的查询
with_check
text
将添加到
WITH CHECK
资格的表达式,用于尝试向此表添加行的查询

ux_prepared_statements

ux_prepared_statements 视图显示当前会话中所有可用的预处理语句。

ux_prepared_statements 包含每个预处理语句的一行。当创建新的预处理语句时,会向视图添加行;当释放预处理语句时(例如通过DEALLOCATE命令),会将行删除。

ux_prepared_statements

列类型
描述
name
text
预处理语句的标识符
statement
text
客户端提交以创建此预处理语句的查询字符串。对于通过 SQL 创建的预处理语句,这是客户端提交的
PREPARE
语句。对于通过前端/后端协议创建的预处理语句,这是预处理语句本身的文本
prepare_time
timestamptz
创建预处理语句的时间
parameter_types
regtype[]
预处理语句的预期参数类型,以
regtype
数组的形式表示。可以通过将数组的元素转换为 OID 来获取相应的 OID。将
regtype
值转换为
oid
result_types
regtype[]

regtype
数组的形式返回准备语句返回的列的类型。可以通过将
regtype
值转换为
oid
来获取与此数组元素对应的OID。如果准备语句不提供结果(例如DML语句),则此字段将为null
from_sql
bool
如果准备语句是通过
PREPARE
SQL命令创建的,则为
true
;如果语句是通过前端/后端协议准备的,则为
false
generic_plans
int8
通用计划被选择的次数
custom_plans
int8
自定义计划被选择的次数

ux_prepared_statements视图是只读的。

ux_prepared_xacts

视图ux_prepared_xacts显示当前准备进行两阶段提交的事务信息。

ux_prepared_xacts每个准备事务包含一行。当事务提交或回滚时,该条目将被删除。

ux_prepared_xacts

列类型
描述
transaction
xid
准备事务的数字事务标识符
gid
text
分配给事务的全局事务标识符
prepared
timestamptz
事务准备提交的时间
owner
name
(引用
ux_authid
.
rolname

执行事务的用户名称
database
name
(引用
ux_database
.
datname

事务执行所在的数据库名称。访问ux_prepared_xacts视图时,内部事务管理器数据结构会被短暂锁定,并为视图制作一份副本以供显示。这确保了视图生成一组一致的结果,同时不会阻塞正常操作的时间。然而,如果频繁访问此视图,可能会对数据库性能产生一定影响

ux_publication_tables

视图ux_publication_tables提供了关于发布和包含表信息的映射的信息。与底层目录ux_publication_rel不同,此视图扩展了定义为FOR ALL TABLESFOR TABLES IN SCHEMA的发布,因此对于这样的发布,每个符合条件的表都会有一行。

ux_publication_tables

列类型
描述
pubname
name
(引用
ux_publication
.
pubname
)
发布名称
schemaname
name
(引用
ux_namespace
.
nspname
)
包含表的模式名称
tablename
name
(引用
ux_class
.
relname
)
表名称
attnames
name[]
(引用
ux_attribute
.
attname

发布中包含的表列的名称。当用户没有为表指定列列表时,这包含表的所有列
rowfilter
text
表的发布限定条件表达式

ux_replication_origin_status

ux_replication_origin_status视图包含关于某个源的重放进度的信息。

ux_replication_origin_status

列类型
描述
local_id
oid
(引用
ux_replication_origin
.
roident
)
内部的节点标识符
external_id
text
(引用
ux_replication_origin
.
roname
)
外部的节点标识符
remote_lsn
ux_lsn
源节点的LSN,到这个位置的数据都已经被复制
local_lsn
ux_lsn
这个节点的LSN,
remote_lsn
已经被复制到这里。使用异步提交时,在将数据持久化到磁盘前用它来刷入提交记录

ux_replication_slots

ux_replication_slots视图提供了当前数据库集群中所有复制槽的列表,以及它们的当前状态。

ux_replication_slots

列类型
描述
slot_name
name
复制槽的唯一集群标识符
plugin
name
包含此逻辑复制槽使用的输出插件的共享对象的基本名称,对于物理复制槽为null
slot_type
text
槽类型:
physical

logical
datoid
oid
(引用
ux_database
.
oid
)
此槽关联的数据库的OID或null。只有逻辑复制槽有关联的数据库
database
name
(引用
ux_database
.
datname

与此槽相关联的数据库名称或null。只有逻辑槽与数据库相关联
temporary
bool
如果这是一个临时复制槽,则为True。临时槽不会保存到磁盘上,并且会在错误或会话结束时自动删除
active
bool
如果此槽当前正在被使用,则为True
active_pid
int4
如果此槽当前正在被使用,则为使用此槽的会话的进程ID。如果不活动,则为
NULL
xmin
xid
此槽需要数据库保留的最旧事务。
VACUUM
无法删除任何后续事务删除的元组
catalog_xmin
xid
此槽需要数据库保留的影响系统目录的最旧事务。
VACUUM
无法删除任何后续事务删除的目录元组
restart_lsn
ux_lsn
此槽的使用者可能仍需要的最旧WAL的地址(
LSN
),因此除非此LSN落后于当前LSN超过max_slot_wal_keep_size,否则在检查点期间不会自动删除。如果此槽的
LSN
从未被保留,则为
NULL
confirmed_flush_lsn
ux_lsn
逻辑槽的使用者已确认接收数据的地址(
LSN
)上限。比此更旧的数据不再可用。物理槽为
NULL
wal_status
text
此槽声明的WAL文件的可用性。可能的值为:
reserved
表示声明的文件在
max_wal_size

extended
表示超出了
max_wal_size
,但文件仍由复制槽或
wal_keep_size
保留
unreserved
表示槽不再保留所需的WAL文件,并且其中一些文件将在下一个检查点时被删除。此状态可以返回到
reserved

extended
lost
表示某些必需的WAL文件已被删除,此槽不再可用
只有在复制槽处于活动状态且使用者正在使用时,才会看到最后两个状态。max_slot_wal_keep_size 是非负的。如果
restart_lsn
为空,则此字段为空
safe_wal_size
int8
可以写入 WAL 的字节数,以使此插槽不会处于“丢失”状态。对于丢失的插槽以及如果
max_slot_wal_keep_size

-1
,则为 NULL
two_phase
bool
如果插槽已启用以解码准备事务,则为 True。对于物理插槽始终为 false

ux_roles

视图ux_roles提供了有关数据库角色的信息。这只是一个公开可读的视图ux_authid ,其中密码字段被清空。

ux_roles

列类型
描述
rolname
name
角色名称
rolsuper
bool
角色具有超级用户特权
rolinherit
bool
角色自动继承其成员角色的特权
rolcreaterole
bool
角色可以创建更多的角色
rolcreatedb
bool
角色可以创建数据库
rolcanlogin
bool
角色可以登录。也就是说,该角色可以作为初始会话授权标识符
rolreplication
bool
角色是复制角色。复制角色可以启动复制连接并创建和删除复制插槽
rolconnlimit
int4
对于可以登录的角色,这设置了该角色可以进行的最大并发连接数。-1表示没有限制
rolpassword
text
不是密码(始终显示为
********
rolvaliduntil
timestamptz
密码过期时间(仅用于密码身份验证);如果没有过期,则为null
rolbypassrls
bool
角色绕过每个行级安全策略
rolconfig
text[]
运行时配置变量的角色特定默认值
oid
oid
(引用
ux_authid
.
oid

角色的ID

ux_rules

视图ux_rules提供了有关查询重写规则的有用信息。

ux_rules

列类型
描述
schemaname
name
(引用
ux_namespace
.
nspname
)
包含表的模式名称
tablename
name
(引用
ux_class
.
relname
)
规则所属的表名称
rulename
name
(引用
ux_rewrite
.
rulename
)
规则名称
definition
text
规则定义(重建的创建命令)

ux_rules视图不包括视图和材料化视图的ON SELECT规则;这些可以在ux_viewsux_matviews中查看。

ux_seclabels

视图ux_seclabels提供有关安全标签的信息。它是ux_seclabel目录的更易于查询的版本。

ux_seclabels

列类型
描述
objoid
oid
(引用任何OID列)
此安全标签所属对象的OID
classoid
oid
(引用
ux_class
.
oid
)
此对象出现在的系统目录的OID
objsubid
int4
对于表列上的安全标签,这是列号(
objoid

classoid
是指表本身)。对于所有其他对象类型,此列为零
objtype
text
此标签适用的对象类型,以文本形式表示
objnamespace
oid
(引用
ux_namespace
.
oid
)
此对象的命名空间的OID(如果适用);否则为NULL
objname
text
此标签适用的对象名称,以文本形式表示
provider
text
(引用自
ux_seclabel
.
provider
)
与此标签相关联的标签提供程序
label
text
(引用自
ux_seclabel
.
label
)
应用于此对象的安全标签

ux_sequences

视图ux_sequences提供了有关数据库中每个序列的有用信息。

ux_sequences

列类型
描述
schemaname
name
(引用
ux_namespace
.
nspname
)
包含序列的模式名称
sequencename
name
(引用
ux_class
.
relname
)
序列名称
sequenceowner
name
(引用
ux_authid
.
rolname
)
序列所有者名称
data_type
regtype
(引用
ux_type
.
oid
)
序列的数据类型
start_value
int8
序列的起始值
min_value
int8
序列的最小值
max_value
int8
序列的最大值
increment_by
int8
序列的增量值
cycle
bool
序列是否循环
cache_size
int8
序列的缓存大小
last_value
int8
最后一个写入磁盘的序列值。如果使用缓存,则此值可以大于从序列中获取的最后一个值。如果序列尚未被读取,则为null。此外,如果当前用户没有对序列的
USAGE

SELECT
权限,则该值为null

ux_settings

视图ux_settings提供了对服务器运行时参数的访问。它本质上是SHOWSET命令的另一种接口。它还提供了一些关于每个参数的事实,这些事实不能直接从SHOW中获得,例如最小值和最大值。

ux_settings

列类型
描述
name
text
运行时配置参数名称
setting
text
参数的当前值
unit
text
参数的隐含单位
category
text
参数的逻辑组
short_desc
text
参数的简要描述
extra_desc
text
参数的附加、更详细的描述
context
text
设置参数值所需的上下文(见下文)
vartype
text
参数类型(
bool

enum

integer

real

string
source
text
当前参数值的来源
min_val
text
参数的最小允许值(非数字值为 null)
max_val
text
参数的最大允许值(非数字值为 null)
enumvals
text[]
枚举参数的允许值(非枚举值为 null)
boot_val
text
如果未设置参数,则在服务器启动时假定的参数值
reset_val
text
RESET
将当前会话中的参数重置为的值
sourcefile
text
设置当前值的配置文件(对于从配置文件以外的来源设置的值或由既不是超级用户也没有
ux_read_all_settings
权限的用户检查时为 null);在配置文件中使用
include
指令时有用
sourceline
int4
设置当前值的配置文件中的行号(对于从配置文件以外的来源设置的值或由既不是超级用户也没有
ux_read_all_settings
权限的用户检查时为 null)
pending_restart
bool
如果在配置文件中更改了值但需要重新启动,则为
true
;否则为
false

context 有几个可能的值。按照更改设置的难度递减的顺序,它们是:

  • internal
    这些设置不能直接更改;它们反映了内部确定的值。其中一些可以通过使用不同的配置选项重新构建服务器或更改传递给initdb的选项来进行调整。

  • uxmaster
    这些设置只能在服务器启动时应用,因此任何更改都需要重新启动服务器。这些设置的值通常存储在 uxsinodb.conf文件中,或在启动服务器时通过命令行传递。当然,任何具有任何其他值的设置都可以在运行时更改。

  • sighup
    这些设置可以通过向服务器发送 SIGHUP 信号来重新加载。这些设置的值通常存储在 uxsinodb.conf文件中,或在运行时通过SET命令更改。这些设置的更改不需要重新启动服务器,但可能会影响正在运行的会话。

  • superuser
    这些设置可以通过任何超级用户更改,但更改可能会影响正在运行的会话。这些设置的值通常存储在 uxsinodb.conf文件中,或在运行时通过SET命令更改。

  • user
    这些设置可以由任何用户更改,但更改可能会影响正在运行的会话。这些设置的值通常通过SET命令在运行时更改。

此视图无法插入或删除,但可以更新。应用于ux_settings行的UPDATE等效于在该命名参数上执行SET命令。更改仅影响当前会话使用的值。如果在稍后中止的事务中发出UPDATE,则UPDATE命令的影响将被回滚。当事务回滚时,对视图的更改将消失。一旦周围的事务提交,其影响将持续到会话结束,除非被另一个UPDATESET覆盖。

该视图不会显示自定义选项,除非定义它们的扩展模块已被后端进程加载执行查询(例如,通过在shared_preload_libraries中提及,调用扩展中的C函数或LOAD命令)。例如,由于归档模块通常仅由归档进程而不是常规会话加载,因此该视图将不会显示由这些模块定义的任何自定义选项,除非采取特殊措施将它们加载到执行查询的后端进程中。

ux_shadow

视图ux_shadow存在于向后兼容性中。它显示了所有标记为rolcanlogin的角色的属性,这些角色在ux_authid中。

名称源于该表不应该被公开读取,因为它包含密码。ux_user是一个公开可读的视图,它将密码字段清空。

ux_shadow

列类型
描述
usename
name
(引用
ux_authid
.
rolname
)
用户名
usesysid
oid
(引用
ux_authid
.
oid
)
此用户的ID
usecreatedb
bool
用户可以创建数据库
usesuper
bool
用户是超级用户
userepl
bool
用户可以启动流复制并将系统置于备份模式中和退出备份模式
usebypassrls
bool
用户可以绕过每个行级安全策略
passwd
text
密码(可能已加密);如果没有则为null
valuntil
timestamptz
密码过期时间(仅用于密码身份验证)
useconfig
text[]
运行时配置变量的会话默认值

ux_shmem_allocations

ux_shmem_allocations 视图显示从服务器的主共享内存段中分配的内存。这包括由 UXsinoDB自身分配的内存以及使用机制分配的扩展内存。

请注意,此视图不包括使用动态共享内存基础架构分配的内存。

ux_shmem_allocations

列类型
描述
name
text
共享内存分配的名称。未使用的内存为 NULL,匿名分配为
off
int8
分配开始的偏移量。对于匿名分配,由于与它们相关的详细信息未知,因此为 NULL
size
int8
分配的大小
allocated_size
int8
包括填充在内的分配大小。对于匿名分配,没有关于填充的信息可用,因此
size

allocated_size
列始终相等。对于空闲内存,填充没有意义,因此在这种情况下,这两列也将相等

匿名分配是直接使用ShmemAlloc()进行的分配,而不是通过共享内存基础架构进行的分配。ShmemInitStruct()ShmemInitHash() 函数用于共享内存的初始化。

默认情况下,ux_shmem_allocations 视图只能被超级用户或拥有 ux_read_all_stats 角色权限的角色读取。

ux_stats

视图ux_stats提供了访问存储在ux_statistic目录中信息的途径。该视图只允许访问用户有读取权限的ux_statistic表的行,因此可以安全地允许公共读取该视图。

ux_stats还设计为以比底层目录更易读的格式呈现信息,但代价是必须在定义ux_statistic的新槽类型时扩展其模式。

ux_stats

列类型
描述
schemaname
name
(引用
ux_namespace
.
nspname
)
包含表的模式名称
tablename
name
(引用
ux_class
.
relname
)
表名称
attname
name
(引用
ux_attribute
.
attname
)
由此行描述的列名称
inherited
bool
如果为true,则此行包括来自子表的值,而不仅仅是指定表中的值
null_frac
float4
列条目中为 null 的分数
avg_width
int4
列条目的平均宽度(以字节为单位)
n_distinct
float4
如果大于零,则为列中估计的不同值的数量。如果小于零,则为不同值的数量除以行数的负数。(当分析认为不同值的数量随着表的增长而增加时,使用取反形式;当列似乎具有固定数量的可能值时,使用正形式。)例如,-1表示唯一的列,其中不同值的数量与行数相同
most_common_vals
anyarray
列中最常见的值列表。(如果没有任何值似乎比其他值更常见,则为 null。)
most_common_freqs
float4[]
最常见值的频率列表,即每个值的出现次数除以总行数。(当 most_common_vals 存在时为 null。)
histogram_bounds
anyarray
将列值分成大致相等的人口群体的值列表。如果存在 most_common_vals 中的值,则在此直方图计算中省略这些值。(如果列数据类型没有'<'运算符或者most_common_vals列表占据了整个人口,则此列为 null。)
correlation
float4
物理行排序和列值的逻辑排序之间的统计相关性。这个值的范围是 -1 到 +1。当值接近 -1 或 +1时,对列进行索引扫描的估计成本将比接近零时更便宜,因为减少了对磁盘的随机访问。(如果列数据类型没有'<'运算符,则此列为 null。)
most_common_elems
anyarray
在列值中最常出现的非空元素值列表。(对于标量类型为 null。)
most_common_elem_freqs
float4[]
最常见元素值的频率列表,即包含给定值的行的分数。每个元素频率后面跟随两个或三个附加值;这些是前面的每个元素频率的最小值和最大值,以及可选的空元素频率。(当most_common_elems存在时为 null。)
elem_count_histogram
float4[]
列值中不同非空元素值的计数直方图,后跟不同非空元素的平均数量。(标量类型为 null。)

可以使用ALTER TABLE SET STATISTICS命令按列控制数组字段中的最大条目数,或通过设置default_statistics_target运行时参数来全局控制。

注意

uxdb安全模式下只有在用户有select权限和列加密权限,且钱包打开的情况下,才可以查看。

ux_stats_ext

视图ux_stats_ext提供了访问数据库中每个扩展统计对象的信息,结合存储在ux_statistic_extux_statistic_ext_data目录中的信息。该视图仅允许访问用户有读取权限的表对应的ux_statistic_extux_statistic_ext_data的行,因此可以安全地允许公共读取该视图。

ux_stats_ext还设计为以比底层目录更易读的格式呈现信息,但代价是必须在ux_statistic_ext中添加新类型的扩展统计时扩展其模式。

ux_stats_ext

列类型
描述
schemaname
name
(引用
ux_namespace
.
nspname
)
包含表的模式名称
tablename
name
(引用
ux_class
.
relname

表的名称
statistics_schemaname
name
(引用
ux_namespace
.
nspname

包含扩展统计对象的模式的名称
statistics_name
name
(引用
ux_statistic_ext
.
stxname

扩展统计对象的名称
statistics_owner
name
(引用
ux_authid
.
rolname

扩展统计对象的所有者
attnames
name[]
(引用
ux_attribute
.
attname

包含在扩展统计对象中的列的名称
exprs
text[]
包含在扩展统计对象中的表达式
kinds
char[]
启用此记录的扩展统计对象的类型
inherited
bool
(引用
ux_statistic_ext_data
.
stxdinherit

如果为 true,则统计信息包括子表中的值,而不仅仅是指定关系中的值
n_distinct
ux_ndistinct
列值组合的 N-distinct 计数。如果大于零,则为组合中的估计不同值数。如果小于零,则为不同值数的负数除以行数。(当
ANALYZE
认为随着表的增长,不同值的数量可能会增加时,使用负数形式;当列似乎具有固定数量的可能值时,使用正数形式。)例如,-1 表示列的唯一组合,其中不同组合的数量与行数相同
dependencies
ux_dependencies
功能依赖关系统计信息
most_common_vals
text[]
列中最常见值的组合列表。(如果没有组合似乎比其他任何组合更常见,则为空。)
most_common_val_nulls
bool[]
最常见值的 NULL 标志列表。 (当
most_common_vals
为 NULL 时也为 NULL。)
most_common_freqs
float8[]
最常见组合的频率列表,即每个组合的出现次数除以总行数。 (当
most_common_vals
为 NULL 时也为 NULL。)
most_common_base_freqs
float8[]
最常见组合的基础频率列表,即每个值的频率的乘积。 (当
most_common_vals
为 NULL 时也为 NULL。)

可以使用ALTER TABLE SET STATISTICS命令按列控制数组字段中的最大条目数,或通过设置default_statistics_target运行时参数在全局范围内控制。

注意

uxdb安全模式下只有在用户有select权限和列加密权限,且钱包打开的情况下,才可以查看。

ux_stats_ext_exprs

视图ux_stats_ext_exprs提供了关于所有扩展统计对象中包含的表达式的信息,结合了存储在ux_statistic_extux_statistic_ext_data目录中的信息。该视图仅允许访问用户有读取权限的表对应的ux_statistic_extux_statistic_ext_data的行,因此可以安全地允许公共读取访问该视图。

ux_stats_ext_exprs还设计为以比底层目录更易读的格式呈现信息,但代价是必须在ux_statistic_ext中的统计结构更改时扩展其模式。

ux_stats_ext_exprs

列类型
描述
schemaname
name
(引用
ux_namespace
.
nspname
)
包含表的模式名称
tablename
name
(引用
ux_class
.
relname
)
定义统计对象的表名
statistics_schemanam
name
(引用
ux_namespace
.
nspname
)
包含扩展统计对象的模式名称
statistics_name
name
(引用
ux_statistic_ext
.
stxname
)
扩展统计对象的名称
statistics_owner
name
(引用
ux_authid
.
rolname
)
扩展统计对象的所有者
expr
text
包含在扩展统计对象中的表达式
inherited
bool
(引用
ux_statistic_ext_data
.
stxdinherit
)
如果为 true,则统计信息包括子表中的值,而不仅仅是指定关系中的值
null_frac
float4
表达式条目中为 null 的比例
avg_width
int4
表达式条目的平均宽度(以字节为单位)
n_distinct
float4
如果大于零,则是表达式中不同值的估计数量。如果小于零,则是不同值的负数除以行数。(当分析认为不同值的数量随着表的增长而增加时,使用负数形式;当表达式似乎具有固定数量的可能值时,使用正数形式。)例如,-1表示唯一的表达式,其中不同值的数量与行数相同
most_common_vals
anyarray
表达式中最常见的值列表。(如果没有值比其他值更常见,则为空。)
most_common_freqs
float4[]
最常见值的频率列表,即每个出现次数除以总行数。(当 most_common_vals 存在时为空。)
histogram_bounds
anyarray
将表达式的值分成大致相等的人口群体的值列表。如果存在,则省略 most_common_vals中的值。直方图计算。(如果表达式数据类型没有'<'运算符或 most_common_vals列表涵盖了整个人口,则此表达式为空。)
correlation
float4
物理行排序和表达式值的逻辑排序之间的统计相关性。这个值的范围是-1到+1。当值接近-1或+1时,由于减少了对磁盘的随机访问,估计表达式的索引扫描将比接近零时更便宜。(如果表达式的数据类型没有'<'运算符,则此表达式为空。)
most_common_elems
anyarray
在表达式的值中最常出现的非空元素值的列表。(标量类型为空。)
most_common_elem_freqs
float4[]
最常见元素值的频率列表,即包含给定值至少一个实例的行的分数。每个元素频率后面跟随两个或三个附加值;这些是前面的每个元素频率的最小值和最大值,以及可选的空元素频率。(当most_common_elems为空时为Null。)
elem_count_histogram
float4[]
表达式值中不同的非空元素值的计数直方图,后跟平均不同的非空元素数。 (标量类型为空。)

可以使用ALTER TABLE SET STATISTICS命令按列控制数组字段中的最大条目数,或通过设置default_statistics_target运行时参数来全局控制。

ux_tables

视图ux_tables提供了有关数据库中每个表的有用信息。

ux_tables

列类型
描述
schemaname
name
(引用
ux_namespace
.
nspname
)
包含表的模式名称
tablename
name
(引用
ux_class
.
relname
)
表的名称
tableowner
name
(引用
ux_authid
.
rolname
)
表的所有者名称
tablespace
name
(引用
ux_tablespace
.
spcname
)
包含表的表空间名称(如果是数据库的默认值,则为空)
hasindexes
bool
(引用
ux_class
.
relhasindex
)
如果表具有(或最近具有)任何索引,则为真。如果表具有(或曾经具有)规则,则为真。如果表启用了行安全性,则为真。如果表具有(或曾经具有)触发器,则为真

ux_timezone_abbrevs

视图ux_timezone_abbrevs提供了当前被日期时间输入例程识别的时区缩写列表。当运行时参数timezone_abbreviations被修改时,此视图的内容会发生变化。

ux_timezone_abbrevs

列类型
描述
abbrev
text
时区缩写
utc_offset
interval
与UTC的偏移量(正数表示东经格林威治)
is_dst
bool
如果这是夏令时缩写,则为True

虽然大多数时区缩写表示与UTC的固定偏移量,但有些历史上的时区缩写的值是变化的。在这种情况下,此视图呈现它们当前的含义。

ux_timezone_names

视图ux_timezone_names提供了SET TIMEZONE识别的时区名称列表,以及它们的相关缩写、UTC偏移和夏令时状态。(从技术上讲,UXsinoDB不使用UTC,因为不处理闰秒。)与ux_timezone_abbrevs中显示的缩写不同,这些名称中的许多都暗示了一组夏令时转换日期规则。因此,相关信息会随着本地夏令时边界的变化而变化。显示的信息是基于当前CURRENT_TIMESTAMP的值计算的。

ux_timezone_names

列类型
描述
name
text
时区名称
abbrev
text
时区缩写
utc_offset
interval
与UTC的偏移量(正数表示东经格林威治)
is_dst
bool
如果当前观察夏令时,则为True

ux_user

视图ux_user提供了关于数据库用户的信息。这只是ux_shadow的一个公开可读视图,其中密码字段被清空。

ux_user

列类型
描述
usename
name
用户名
usesysid
oid
此用户的ID
usecreatedb
bool
用户可以创建数据库
usesuper
bool
用户是超级用户
userepl
bool
用户可以启动流复制并将系统置于备份模式中和退出备份模式
usebypassrls
bool
用户绕过每个行级安全策略
passwd
text
不是密码(始终读作
********
valuntil
timestamptz
密码过期时间(仅用于密码身份验证)
useconfig
text[]
运行时配置变量的会话默认值

ux_user_mappings

视图ux_user_mappings提供了有关用户映射的信息。这本质上是ux_user_mapping的一个公开可读视图,如果用户没有使用它的权限,则省略选项字段。

ux_user_mappings

列类型
描述
umid
oid
(引用
ux_user_mapping
.
oid
)
用户映射的OID
srvid
oid
(引用
ux_foreign_server
.
oid
)
包含此映射的外部服务器的OID
srvname
name
(引用
ux_foreign_server
.
srvname
)
外部服务器的名称
umuser
oid
(引用
ux_authid
.
oid
)
被映射的本地角色的OID,如果用户映射是公共的,则为零
usename
name
要映射的本地用户的名称
umoptions
text[]
用户映射特定选项,作为“keyword=value”字符串

为了保护存储为用户映射选项的密码信息, 除非满足以下条件之一,否则umoptions列将读取为null:

  • 当前用户是被映射的用户,并拥有服务器或 在其上拥有USAGE特权

  • 当前用户是服务器所有者,映射是为PUBLIC

  • 当前用户是超级用户

ux_views

视图ux_views提供了有关数据库中每个视图的有用信息。

ux_views

列类型
描述
schemaname
name
(引用
ux_namespace
.
nspname
)
包含视图的模式名称
viewname
name
(引用
ux_class
.
relname
)
视图名称
viewowner
name
(引用
ux_authid
.
rolname
)
视图所有者的名称
definition
text
视图定义(重构的
SELECT
查询)

3.兼容Oracle视图

### 概述

表 兼容oracle视图

视图名字用途
all_arguments当前用户可以访问的函数和过程的参数
all_col_comments当前用户可访问的所有序列
all_col_privs当前用户下可以查看的所有列级权限
all_cons_columns当前用户可访问的所有约束的列
all_constraints当前用户可以访问的表上的约束定义
all_ind_columns当前用户所能获取到的表上建有索引的列信息
all_indexes当前用户所能获取到的表上的索引信息
all_objects当前用户下可以查看的所有对象
all_queues当前用户下可以查看的所有队列
all_queue_tables当前用户下可以查看的所有队列表
all_sequences当前用户可访问的所有序列
all_source当前用户可访问的存储对象的文本源
all_synonyms当前用户所能查看的同义词信息。包括:
当前用户的私有同义词
所有的public同义词
本地同义词(DB_LINK列为空)所指向,或者嵌套指向的对象,当前用户有权限查看
all_tab_cols当前用户可以访问的表,视图的列
all_tab_columns当前用户可以访问的表,视图的非隐藏列
all_tab_comments在当前用户可以访问的表和视图上显示注释
all_tab_privs描述当前用户,该用户可以是对象的所有者、授予者或者被授予者
all_tables当前用户可访问的表
all_trigger_cols当前用户可访问的所有触发器的列
all_triggers当前用户可访问的所有触发器
all_users列出当前用户可见的数据库的所有用户
all_views当前用户所能查看的所有的视图信息
db_files数据库中所有表空间、表空间使用的存储容量及表空间所在存储设备的容量信息
dba_arguments列出数据库中可用的过程和函数的参数
dba_col_comments在数据库中所有表和视图的列上显示注释
dba_col_privs所有列级权限
dba_cons_columns约束中指定的数据库中的所有列
dba_constraints当前用户所拥有的表的所有约束定义
dba_ind_columns数据库中所有建有索引的列的信息
dba_indexes数据库中所有索引的信息
dba_objects当前用户下可以查看的所有对象
dba_queues当前用户下可以查看的所有队列
dba_queue_tables当前用户下可以查看的所有队列表
dba_role_privs授予所有用户的角色以及数据库中的角色
dba_roles列出数据库中存在的所有角色
dba_sequences数据库中所有的序列
dba_source描述数据库中所有存储对象的文本源
dba_synonyms数据库中所有同义词的信息
dba_tab_cols当前所在数据库中,所有的表、视图的列信息
dba_tab_columns当前所在数据库中,所有的表、视图的非隐藏列信息
dba_tab_comments显示数据库中所有表和视图的注释
dba_tab_privs描述数据库中的所有对象授予
dba_tables数据库中的所有表
dba_tablespace数据库中的表空间
dba_tablespaces数据库中的所有表空间
dba_trigger_cols数据库中所有触发器的列
dba_triggers数据库中所有的触发器
dba_users数据库中所有用户的信息
dba_views当前用户的所有视图的信息
user_arguments描述当前用户拥有的过程和函数的参数
user_col_comments在当前用户拥有的表和视图的列上注释
user_col_privs当前用户下的列级权限表
user_cons_columns描述当前用户拥有并在约束中指定的列
user_constraints当前用户所拥有的表的所有约束定义
user_ind_columns数据库中所有建有索引的列的信息
user_indexes当前用户拥有的所有索引信息
user_objects当前用户拥有的所有对象
user_queues当前用户拥有的队列
user_queue_tables当前用户拥有的队列表
user_role_privs授予当前用户的角色
user_sequences当前用户的所有序列的信息
user_source当前用户的所有程序源的信息
user_synonyms数据库中用户所有同义词的信息
user_tab_cols当前用户可以访问的表,视图的列
user_tab_columns数据库中所有表列的信息
user_tab_comments当前用户拥有的表和视图上的注释
user_tab_privs当前用户的对象权限,该用户可以是对象的所有者、授予者或者被授予者
user_tables当前用户的所有表的信息
user_tablespace描述当前用户可访问的表空间
user_tablespaces当前用户可访问的表空间
user_trigger_cols当前用户用的所有触发器的列信息
user_triggers当前用户的所有触发器的信息
user_users当前用户
user_views当前用户的所有视图的信息
V$DATABASE当前数据库信息
V$INSTANCE当前实例信息
V$LOCK列出数据库当前持有的锁以及对锁的未完成请求
V$LOCKED_OBJECT当前被锁定的对象
V$PARAMETER列出影响当前会话的初始化参数信息
V$SESSION当前会话信息
V$SYSSTAT当前系统统计信息

user_db_link视图当前用户的dblink信息

名称列约束返回值类型描述
DB_LINKNOT NULLVARCHAR2(128)dblink的名称
USERNAME VARCHAR2(128)dblink的用户名
PASSWORD VARCHAR2(128)dblink的密码
HOST VARCHAR2(2000)dblink的host
CREATEDNOT NULLDatedblink的创建时间
HIDDEN VARCHAR2(3)是否是自用

all_db_links视图当前用户的dblink信息

名称列约束返回值类型描述
OWNERNOT NULLVARCHAR2(128)dblink的拥有者
DB_LINKNOT NULLVARCHAR2(128)dblink的名称
USERNAME VARCHAR2(128)dblink的用户名
HOST VARCHAR2(2000)dblink的host
CREATEDNOT NULLDATEdblink的创建时间
HIDDEN VARCHAR2(3)是否是自用

dba_db_links视图当前用户的dblink信息

名称列约束返回值类型描述
OWNERNOT NULLVARCHAR2(128)dblink的拥有者
DB_LINKNOT NULLVARCHAR2(128)dblink的名称
USERNAME VARCHAR2(128)dblink的用户名
HOST VARCHAR2(2000)dblink的host
CREATEDNOT NULLDATEdblink的创建时间
HIDDEN VARCHAR2(3)是否是自用

注意

查询此视图需要超级用户权限。

dba_db_link_source视图当前用户的dblink信息

名称列约束返回值类型描述
SOURCE_IDNOT NULLNUMBERdblink的源ID
DB_NAMENOT NULLVARCHAR2(256)dblink的数据库名称
DBIDNOT NULLNUMBER目标数据库的映射ID
DB_UNIQUE_NAME VARCHAR2(256)目录数据库的唯一名
HOST_NAME VARCHAR2(256)dblink中的主机名
IP_ADDRESS VARCHAR2(128)dblink所指的IP地址
PROTOCOL VARCHAR2(64)dblink的连接协议
USERNAMENOT NULLVARCHAR2(128)当前用户名
USER#(加个双引号)NOT NULLNUMBER用户的ID
FIRST_LOGON_TIMENOT NULLTIMESTAMP(6)第一次使用dblink的时间
LAST_LOGON_TIME TIMESTAMP(6)最后一次使用dblink的时间
LOGON_COUNT NUMBERdblink的总共使用次数

注意

查询此视图需要超级用户权限。

all_arguments

all_arguments视图描述当前用户可以访问的函数和过程的参数。

all_arguments的列

名称类型描述
OWNERCHARACTER VARYING对象的拥有者
PACKAGE_NAMECHARACTER VARYING包的名称
OBJECT_NAMECHARACTER VARYING过程或函数的名称
OBJECT_IDOID对象的对象号
POSITIONINTEGER此列保存该项在参数列表中的位置,0表示函数返回值
ARGUMENT_NAMECHARACTER VARYING参数名称,空参数名用于表示函数返回
IN_OUTCHARACTER VARYING入参/出参类型
IN
OUT
IN/OUT
TYPE_NAMECHARACTER VARYING实参类型的名称。如果类型是包本地类型(也就是说,它在包规范中声明),则此列显示包的名称
OVERLOADCHARACTER VARYING指示第n个重载(按其在源中的出现顺序);否则,它是NULL
SUBPROGRAM_IDINTEGER唯一子程序标识符
SEQUENCEINTEGER定义参数的顺序。参数序列从1开始。首先是返回类型,然后是每个参数
DATA_LEVELINTEGER复合类型实参的嵌套深度
DATA_TYPECHARACTER VARYING参数的数据类型
DEFAULTEDCHARACTER VARYING指定参数是否为默认值
DEFAULT_VALUETEXT保留供将来使用
DEFAULT_LENGTHINTEGER保留供将来使用
DATA_LENGTHINTEGER列长度(以字节为单位)
DATA_PRECISIONINTEGER十进制数字(NUMBER)或二进制数字(FLOAT)的长度
DATA_SCALEINTEGER小数点右边的数字
RADIXINTEGER一个数字的基数参数
CHARACTER_SET_NAMECHARACTER VARYING参数的字符集名称
TYPE_OWNERCHARACTER VARYING参数类型的所有者
TYPE_SUBNAMECHARACTER VARYING只与包本地类型相关。显示在TYPE_NAME列标识的包中声明的类型的名称
TYPE_LINKCHARACTER VARYING当TYPE_NAME列中标识的包是远程包时,仅与包本地类型相关。此列显示用于引用远程包的数据库链接
TYPE_OBJECT_TYPECHARACTER VARYING显示由TYPE_OWNER、TYPE_NAME和TYPE_SUBNAME列描述的类型的类型。取值如下所示。
TABLE
VIEW
PACKAGE
TYPE
PLS_TYPECHARACTER VARYING对于数值形参,实参的PL/SQL类型的名称。否则无效
CHAR_LENGTHINTEGER字符串数据类型的字符限制
CHAR_USEDCHARACTER VARYING指示字符串的字节限制(B)或字符限制(C)是否正式
ORIGIN_CON_IDINTEGER数据产生的容器的ID。可能的值包括:
0:该值用于非cdb中的行。此值不用于cdb
n:该值用于包含起源于容器ID为n的容器的数据的行(如果该行起源于root,则n = 1)

### all_col_comments

all_col_comments视图描述当前用户可访问的所有序列。

all_col_comments的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
TABLE_NAMEVARCHAR2(63)对象名
COLUMN_NAMEVARCHAR2(63)列名
COMMENTSVARCHAR2(4000)描述

### all_col_privs

all_col_privs视图描述当前用户下可以查看的所有列级权限。

all_col_privs的列

名称类型描述
GRANTORVARCHAR2(63)执行授权的用户的名称
OWNERVARCHAR2(63)对象的拥有者
GRANTEEVARCHAR2(63)授予访问权的用户或角色的名称
TABLE_CATALOGVARCHAR2(63)当前的数据库
TABLE_SCHEMAVARCHAR2(63)对象的模式
TABLE_NAMEVARCHAR2(63)表名
COLUMN_NAMEVARCHAR2(63)列名
PRIVILEGE_TYPEVARCHAR2(40)权限名称
IS_GRANTABLEVARCHAR2(3)允许访问

all_cons_columns

all_cons_columns视图描述当前用户可访问的所有约束的列。

all_cons_columns的列

名称类型描述
OWNERVARCHAR2(63)兑现的拥有者
CONSTRAINT_NAMEVARCHAR2(63)约束名
TABLE_NAMEVARCHAR2(63)表名
COLUMN_NAMEVARCHAR2(4000)列名
POSITIONNUMERIC定义中列的原始位置

all_constraints

all_constraints视图描述当前用户可以访问的表上的约束定义。

all_constraints的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
CONSTRAINT_NAMEVARCHAR2(63)约束名
CONSTRAINT_TYPEVARCHAR2(1)约束定义的类型,取值如下所示
C -表上的检查约束
P -主键
U -唯一密钥
R -外键
T -受限触发器
X -排他性约束
TABLE_NAMEVARCHAR2(63)表名
SEARCH_CONDITIONTEXT检查约束的搜索条件的文本。只有当行起源于当前容器时,此列才返回正确的值
R_OWNERVARCHAR2(63)引用约束中引用的表的所有者
R_CONSTRAINT_NAMEVARCHAR2(63)引用表的唯一约束定义的名称
DELETE_RULEVARCHAR2(9)引用约束的删除规则如下所示。
RESTRICT
CASCADE
NULL
SET NULL
SET DEFAULT
NO ACTION
STATUSVARCHAR2(8)约束的实施状态如下所示。
ENABLED
DISABLED
DEFERRABLEVARCHAR2(14)指示约束是否可延迟(deferrable)或不可延迟(not deferrable)
DEFERREDVARCHAR2(9)指示约束最初是否被延迟(deferred) (IMMEDIATE)
VALIDATEDVARCHAR2(13)当STATUS = ENABLED时,可能的值为:
VALIDATED -所有数据都遵守约束(也就是说,当启用约束时,表中的现有数据以及输入到表中的任何后续数据都将得到验证)
NOVALIDATED -所有数据都可能不遵守约束(也就是说,当启用约束时,表中现有的数据没有被验证,但是输入到表中的后续数据被验证)
GENERATEDVARCHAR2(14)指示约束的名称是用户生成(USER name)还是系统生成(GENERATED name)
BADVARCHAR2(3)指示此约束是否以模糊的方式指定世纪(BAD)或否(NULL)。为了避免这种模糊性导致的错误,可以使用带四位数年份的TO_DATE函数重写约束
RELYVARCHAR2(4)当VALIDATED = NOT VALIDATED时,此列表示查询重写(RELY)时是否考虑约束(NULL)
LAST_CHANGETIMESTAMP(0) WITHOUT TIME ZONE约束最后一次启用或禁用的时间
INDEX_OWNERVARCHAR2(63)拥有索引的用户名
INDEX_NAMEVARCHAR2(63)索引的名称(仅在唯一和主键约束时显示)
INVALIDVARCHAR2(7)指示约束是否无效(invalid)或无效(NULL)
VIEW_RELATEDVARCHAR2(14)指示约束是否依赖于视图(DEPEND on view) (NULL)

all_ind_columns

all_ind_columns视图描述当前用户所能获取到的表上建有索引的列信息。

all_ind_columns的列

名称类型描述
INDEX_OWNERVARCHAR2(63)对象的拥有者
INDEX_NAMEVARCHAR2(63)索引名
TABLE_OWNERVARCHAR2(63)表的拥有者
TABLE_NAMEVARCHAR2(63)表名
COLUMN_NAMEVARCHAR2(4000)列名
COLUMN_POSITIONSMALLINT索引中的列或属性的位置
COLUMN_LENGTHNUMERIC列的索引长度
CHAR_LENGTHNUMERIC列的最大码点长度
DESCENDVARCHAR2(4)列是否按降序排序(Y/N)

### all_indexes

all_indexes视图描述当前用户可访问的所有约束的列。

all_indexes的列

名称类型描述
OWNERVARCHAR2(63)索引的拥有者
INDEX_NAMEVARCHAR2(63)索引名
INDEX_TYPEVARCHAR2(27)索引类型
TABLE_OWNERVARCHAR2(63)表的拥有者
TABLE_NAMEVARCHAR2(63)表名
TABLE_TYPETEXT表类型
UNIQUENESSVARCHAR2(9)索引的惟一状态
COMPRESSIONVARCHAR2(8)用于索引的压缩类型
PREFIX_LENGTHNUMERIC压缩键前缀中的列数
TABLESPACE_NAMEVARCHAR2(63)包含索引的表空间的名称
INI_TRANSVARCHAR2(7)初始交易数量
MAX_TRANSVARCHAR2(7)最大交易数量
INITIAL_EXTENTVARCHAR2(7)初始范围的大小
NEXT_EXTENTVARCHAR2(7)辅助扩展区的大小
MIN_EXTENTSVARCHAR2(7)段中允许的最小范围数
MAX_EXTENTSVARCHAR2(7)段中允许的最大范围数
PCT_INCREASEVARCHAR2(7)区大小增加的百分比
PCT_THRESHOLDVARCHAR2(7)每个索引条目允许的块空间百分比阈值
INCLUDE_COLUMNVARCHAR2(7)要包含在按索引组织的表主键(非溢出)索引中的最后一列的列ID
FREELISTSVARCHAR2(7)分配给该段的进程空闲列表数
FREELIST_GROUPSVARCHAR2(7)分配给该段的空闲列表组的数量
PCT_FREEVARCHAR2(7)块中可用空间的最小百分比
LOGGINGVARCHAR2(7)指示是否记录对索引的更改:
BLEVELVARCHAR2(7)b *-树级别(从其根块到其叶块的索引深度)。深度0表示根块和叶块是相同的
LEAF_BLOCKSVARCHAR2(7)索引中的叶块数
DISTINCT_KEYSVARCHAR2(7)不同索引值的数量。对于强制执行的索引UNIQUE和PRIMARY KEY约束,该值与表中的行数相同(*_TABLES.NUM_ROWS)
AVG_LEAF_BLOCKS_PER_KEYVARCHAR2(7)索引中每个不同值出现的叶块数的平均值,四舍五入为最接近的整数。对于强制执行的索引UNIQUE和PRIMARY KEY约束,该值始终为1
AVG_DATA_BLOCKS_PER_KEYVARCHAR2(7)表中由索引中的非重复值指向的平均数据块数,四舍五入为最接近的整数。此统计信息是包含索引列中包含给定值的行的数据块的平均数量
CLUSTERING_FACTORVARCHAR2(7)根据索引值指示表中行的顺序。如果该值接近块数,则该表非常有序。在这种情况下,单个叶块中的索引条目倾向于指向相同数据块中的行;如果该值接近行数,则该表是随机排序的。在这种情况下,同一叶块中的索引条目不太可能指向同一数据块中的行
STATUSVARCHAR2(8)指示非分区索引是否为VALID或者UNUSABLE
NUM_ROWSVARCHAR2(7)索引中的行数。
SAMPLE_SIZEVARCHAR2(7)用于分析指数的样本大小
LAST_ANALYZEDVARCHAR2(20)最近分析此索引的日期
DEGREEVARCHAR2(40)每个实例用于扫描索引的线程数,或者DEFAULT
INSTANCESVARCHAR2(40)要扫描索引的实例数,或者DEFAULT
PARTITIONEDVARCHAR2(3)指示索引是否已分区(YES)还是不(NO)
TEMPORARYVARCHAR2(1)指示索引是否在临时表上(Y)还是不(N)
GENERATEDVARCHAR2(1)指示索引的名称是否是系统生成的(Y)还是不(N)
SECONDARYVARCHAR2(1)指示该索引是否是由ODCIIndexCreateOracle数据盒式磁带的方法(Y)还是不(N)
BUFFER_POOLVARCHAR2(7)用于索引块的缓冲池:
USER_STATSVARCHAR2(3)指示统计信息是否由用户直接输入(YES)还是不(NO)
DURATIONVARCHAR2(15)指示临时表的持续时间:
SYS$SESSION-在会话期间保留行
SYS$TRANSACTION-行在以下时间后被删除COMMIT
PCT_DIRECT_ACCESSVARCHAR2(7)对于索引组织表上的辅助索引,使用 VALID 猜测的行的百分比
ITYP_OWNERVARCHAR2(63)对于域索引,索引类型的所有者
ITYP_NAMEVARCHAR2(63)对于域索引,是索引类型的名称
PARAMETERSVARCHAR2(1000)对于域索引,参数字符串
GLOBAL_STATSVARCHAR2(3)如果收集或增量维护统计信息,则GLOBAL_STATS将为YES,否则将为NO
DOMIDX_STATUSVARCHAR2(12)域索引的状态:
空索引不是域索引
VALID- Index是有效的域索引
IDXTYP_INVLD-域索引的Indextype无效
DOMIDX_OPSTATUSVARCHAR2(6)域索引的操作状态:
空索引不是域索引
VALID-操作执行无误
FAILED-操作失败,出现错误
FUNCIDX_STATUSVARCHAR2(8)基于函数的索引的状态:
空索引不是基于函数的索引
ENABLED-启用基于函数的索引
DISABLED-基于函数的索引被禁用
JOIN_INDEXTEXT指示该索引是否是联接索引(YES)还是不(NO)
IOT_REDUNDANT_PKEY_ELIMTEXT指示是否从按索引组织的表上的辅助索引中删除了冗余的主键列(YES)还是不(NO)
DROPPEDTEXT指示该索引是否已被删除并在回收站中(YES)还是不(NO);分区表为空。该视图不返回已被删除的索引的名称

all_objects

all_objects视图描述当前用户下可以查看的所有对象。

all_objects的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
OBJECT_NAMEVARCHAR2(63)对象名
SUBOBJECT_NAMEVARCHAR2(63)子对象的名称
OBJECT_IDNUMERIC(38,0)对象的对象号
DATA_OBJECT_IDNUMERIC(38,0)包含该对象的段的字典对象号
OBJECT_TYPEVARCHAR2(19)对象类型
CREATEDDATE对象创建的时间戳
LAST_DDL_TIMEDATE对象和DDL语句产生的依赖对象的最后修改的时间戳(包括授予和撤销)
TIMESTAMPVARCHAR2(20)对象规范的时间戳(字符数据)
STATUSVARCHAR2(7)对象的状态
TEMPORARYVARCHAR2(1)对象是否是临时的
GENERATEDVARCHAR2(1)是否生成此对象系统的名称
SECONDARYVARCHAR2(1)指示这是否是Oracle Data Cartridge的ODCIIndexCreate方法创建的辅助对象
NAMESPACENUMERIC(38,0)命名空间

all_queues

all_queues视图提供任何当前已定义队列的相关信息。

all_queues的列

名称类型描述
ownerCHARACTER VARYING队列所有者的用户名
nameNAME队列的名称
queue_tableNAME队列所在队列表的名称
qidOID队列的系统分配对象ID
queue_typeCHARACTER VARYING队列类型;当前仅NORMAL_QUEUE
max_retriesINT出队尝试的最大次数(仅兼容)
retrydelayNUMERIC两次重试之间允许的最长时间(仅兼容)
enqueue_enabledCHARACTER VARYING如果队列允许入队,则为YES;如果队列不允许入队,则为NO
dequeue_enabledCHARACTER VARYING如果队列允许出队,则为 YES;如果队列不允许出队,则为 NO
retentionCHARACTER VARYING已处理的消息保留在队列中的秒数(仅兼容)
user_commentCHARACTER VARYING用户指定的注释
network_nameCHARACTER VARYING(仅兼容)
shardedCHARACTER VARYING(仅兼容)

all_queue_tables

all_queue_tables视图提供数据库中的所有队列表的相关信息。

all_queue_tables的列

名称类型描述
ownerCHARACTER VARYING队列表所有者的角色名
queue_tableNAME队列表的用户指定名称
typeCHARACTER VARYING队列表中存储的数据的类型
object_typeTEXT用户定义的有效负载类型
sort_orderCHARACTER VARYING队列表的排序顺序(仅兼容)
recipientsCHARACTER VARYING(仅兼容)
message_groupingCHARACTER VARYING(仅兼容)
compatibleCHARACTER VARYING(仅兼容)
primary_instanceNUMERIC(仅兼容)
secondary_instanceNUMERIC(仅兼容)
owner_instanceNUMERIC(仅兼容)
user_commentCHARACTER VARYING创建表时提供的用户注释
secureCHARACTER VARYING(仅兼容)

all_sequences

all_sequences视图描述当前用户可访问的所有约束的列。

all_sequences的列

名称类型描述
SEQUENCE_OWNERVARCHAR2(63)序列的拥有者
SEQUENCE_NAMEVARCHAR2(63)序列名
MIN_VALUENUMERIC(38,0)序列的最小值
MAX_VALUENUMERIC(38,0)序列的最大值
INCREMENT_BYNUMERIC(38,0)序列按该值递增
CYCLE_FLAGTEXT指示序列在达到极限(Y)时是否换行(N)
ORDER_FLAGVARCHAR2(1)指示序列号是否按(Y)的顺序生成(N)
CACHE_SIZENUMERIC(38,0)要缓存的序列号的个数
LAST_NUMERICNUMERIC(38,0)最后写入磁盘的序列号。如果序列使用缓存,则写入磁盘的数字是序列缓存中的最后一个数字。这个数字很可能大于所使用的最后一个序列号。对于会话序列,应忽略此列中的值

all_source

all_source视图描述当前用户可访问的存储对象的文本源。

all_source的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
NAMEVARCHAR2(63)对象名
TYPEVARCHAR2(12)对象类型:FUNCTION, JAVA SOURCE, PACKAGE, PACKAGE BODY, PROCEDURE, TRIGGER, TYPE, TYPE BODY
TEXTCLOB存储对象的文本源

all_synonyms

描述当前用户所能查看的同义词信息。包括:

  • 当前用户的私有同义词
  • 所有的public同义词
  • 本地同义词(DB_LINK列为空)所指向,或者嵌套指向的对象,当前用户有权限查看

all_synonyms的列

名称类型描述
OWNERVARCHAR2(63)同义词的所有者
SYNONYM_NAMESPACE_NAMEVARCHAR2(63)同义词的命名空间
SYNONYM_NAMEVARCHAR2(63)同义词名
TABLE_OWNERVARCHAR2(63)由同义词引用的对象的所有者
TABLE_NAMESPACE_NAMEVARCHAR2(63)表的命名空间
TABLE_NAMEVARCHAR2(63)由同义词引用的对象的名称
DBLINKTEXT引用的数据库链接的名称(如果有的话)

all_tab_cols

all_tab_cols视图描述当前用户可以访问的表,视图的列。

all_tab_cols的列

名称类型描述
OWNERVARCHAR2(63)表、视图的拥有者
TABLE_NAMEVARCHAR2(63)表、视图的名称
COLUMN_NAMEVARCHAR2(63)列名
DATA_TYPEVARCHAR2(106)列的数据类型
DATA_TYPE_MODVARCHAR2(3)列的数据类型修饰符
DATA_TYPE_OWNERVARCHAR2(63)列的数据类型的所有者
DATA_LENGTHNUMERIC列长度(以字节为单位)
DATA_PRECISIONNUMERIC数字数据类型的十进制精度;浮点型的二进制精度;所有其他数据类型为空
DATA_SCALENUMERIC位数:数字中小数点右边的位数
NULLABLEVARCHAR2(1)指示列是否允许为空。如果列上存在非NULL约束或列是主键的一部分,则该值为N
COLUMN_IDNUMERIC创建的列的序列号
DEFAULT_LENGTHNUMERIC列的默认值的长度
DATA_DEFAULTTEXT列的默认值
NUM_DISTINCTNUMERIC列中不同值的数目
LOW_VALUENUMERIC列中的低值
HIGH_VALUENUMERIC列中的高值
DENSITYNUMERIC如果柱状图在COLUMN_NAME上可用,则此列显示在柱状图中跨越少于2个端点的值的选择性。它不表示跨越2个或多个端点的值的选择性。如果柱状图在COLUMN_NAME上不可用,则该列的值为1/NUM_DISTINCT
NUM_NULLSNUMERIC列中空值的数目
NUM_BUCKETSNUMERIC列的直方图中的桶数。注意:直方图中的桶数是在ANALYZE SQL语句的SIZE参数中指定的。然而,Oracle数据库并没有创建一个比样本行数更多的桶的直方图。此外,如果样本中包含任何重复的值,Oracle数据库会创建指定数量的桶,但由于内部压缩算法的原因,这一列显示的值可能更小
LAST_ANALYZEDTIMESTAMP(0) WITHOUT TIME ZONE这一栏最近分析的日期
SAMPLE_SIZENUMERIC用于分析该列的样本量
CHARACTER_SET_NAMEVARCHAR2(44)字符集名称:CHAR_CS/NCHAR_CS
CHAR_COL_DECL_LENGTHNUMERIC字符类型列的声明长度
GLOBAL_STATSVARCHAR2(3)如果统计信息被收集或增量维护,GLOBAL_STATS将为YES,否则为NO
USER_STATSVARCHAR2(3)指示统计信息是否由用户直接输入(YES)或(NO)
AVG_COL_LENNUMERIC列的平均长度(以字节计)
CHAR_LENGTHNUMERIC以字符为单位显示列的长度。该值仅适用于以下数据类型:
CHAR
VARCHAR2
NCHAR
NVARCHAR2
CHAR_USEDVARCHAR2(1)指示列使用BYTE长度语义(B)或CHAR长度语义(C),或者数据类型不是以下任何一种(NULL):
CHAR
VARCHAR2
NCHAR
NVARCHAR2
V80_FMT_IMAGEVARCHAR2(3)指示列数据是否为8.0版本图像格式(YES)或否(NO)
DATA_UPGRADEDVARCHAR2(3)指示列数据是否已升级为最新类型版本格式(YES)或(NO)
HIDDEN_COLUMNVARCHAR2(3)指示列是否是隐藏列(YES)或不是(NO)
VIRTUAL_COLUMNVARCHAR2(3)指示列是否是虚拟列(YES)或不是(NO)
SEGMENT_COLUMN_IDNUMERIC段中列的序列号
INTERNAL_COLUMN_IDNUMERIC列的内部序列号
HISTOGRAMVARCHAR2(15)表示直方图的存在/类型:
NONE
FREQUENCY
TOP-FREQUENCY
HEIGHT BALANCED
HYBRID
QUALIFIED_COL_NAMEVARCHAR2(4000)限定的列名

all_tab_columns

all_tab_columns视图描述当前用户可以访问的表,视图的非隐藏列。

all_tab_columns的列

名称类型描述
OWNERTEXT表、视图的拥有者
TABLE_NAMEVARCHAR2(63)表、视图的名称
COLUMN_NAMEVARCHAR2(63)列名
DATA_TYPEVARCHAR2(106)列的数据类型
DATA_TYPE_MODVARCHAR2(3)列的数据类型修饰符
DATA_TYPE_OWNERVARCHAR2(63)列的数据类型的所有者
DATA_LENGTHNUMERIC列长度(以字节为单位)
DATA_PRECISIONNUMERICNUMBER数据类型的十进制精度;FLOAT数据类型的二进制精度;所有其他数据类型为NULL
DATA_SCALENUMERIC小数点右边的数字
NULLABLEVARCHAR2(1)指示列是否允许null。如果列上有NOT NULL约束,或者列是PRIMARY KEY的一部分,则该值为N
COLUMN_IDNUMERIC创建的列的序列号
DEFAULT_LENGTHNUMERIC列的默认值的长度
DATA_DEFAULTTEXT列的默认值
NUM_DISTINCTNUMERIC列中不同值的数目
LOW_VALUENUMERIC列中的低值
HIGH_VALUENUMERIC列中的高值
DENSITYNUMERIC如果柱状图在COLUMN_NAME上可用,则此列显示在柱状图中跨越少于2个端点的值的选择性。它不表示跨越2个或多个端点的值的选择性。如果柱状图在COLUMN_NAME上不可用,则该列的值为1/NUM_DISTINCT
NUM_NULLSNUMERIC列中空值的数目
NUM_BUCKETSNUMERIC列的直方图中的桶数。注意:直方图中的桶数是在ANALYZE SQL语句的SIZE参数中指定的。然而,Oracle数据库并没有创建一个比样本行数更多的桶的直方图。此外,如果样本中包含任何重复的值,Oracle数据库会创建指定数量的桶,但由于内部压缩算法的原因,这一列显示的值可能更小
LAST_ANALYZEDTIMESTAMP(0) WITHOUT TIME ZONE这一栏最近分析的日期
SAMPLE_SIZENUMERIC用于分析该列的样本量
CHARACTER_SET_NAMEVARCHAR2(44)字符集名称:CHAR_CS/NCHAR_CS
CHAR_COL_DECL_LENGTHNUMERIC字符类型列的声明长度
GLOBAL_STATSVARCHAR2(3)如果统计信息被收集或增量维护,GLOBAL_STATS将为YES,否则为NO
USER_STATSVARCHAR2(3)指示统计信息是否由用户直接输入(YES)或(NO)
AVG_COL_LENNUMERIC列的平均长度(以字节计)
CHAR_LENGTHNUMERIC以字符为单位显示列的长度。该值仅适用于以下数据类型:
CHAR
VARCHAR2
NCHAR
NVARCHAR2
CHAR_USEDVARCHAR2(1)指示列使用BYTE长度语义(B)或CHAR长度语义(C),或者数据类型不是以下任何一种(NULL):
CHAR
VARCHAR2
NCHAR
NVARCHAR2
V80_FMT_IMAGEVARCHAR2(3)指示列数据是否为8.0版本图像格式(YES)或否(NO)
DATA_UPGRADEDVARCHAR2(3)指示列数据是否已升级为最新类型版本格式(YES)或(NO)
HISTOGRAMVARCHAR2(15)表示直方图的存在/类型:
NONE
FREQUENCY
TOP-FREQUENCY
HEIGHT BALANCED
HYBRID

all_tab_comments

all_tab_comments视图在当前用户可以访问的表和视图上显示注释。

all_tab_comments的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
TABLE_NAMEVARCHAR2(63)表名
TABLE_TYPEVARCHAR2(11)表类型
COMMENTSVARCHAR2(4000)注释

all_tab_privs

all_tab_privs视图描述当前用户,该用户可以是对象的所有者、授予者或者被授予者。

all_tab_privs的列

名称类型描述
GRANTEEVARCHAR2(63)授予访问权的用户或角色的名称
OWNERVARCHAR2(63)对象的所有者
TABLE_NAMEVARCHAR2(63)对象名称
GRANTORVARCHAR2(63)执行授权的用户的名称
PRIVILEGEVARCHAR2(40)对象上的特权
GRANTABLEVARCHAR2(3)指示是否使用
GRANT OPTION
(YES)或否(NO)授予特权

all_tables

all_tables视图描述当前用户可访问的表。

all_tables的列

名称类型描述
OWNERVARCHAR2(63)表的拥有者
TABLE_NAMEVARCHAR2(63)表的名称
TABLESPACE_NAMEVARCHAR2(63)包含该表的表空间的名称;对于分区表、临时表和按索引组织的表,为NULL
CLUSTER_NAMEVARCHAR2(63)表所属的集群的名称(如果有)
IOT_NAMEVARCHAR2(63)溢出或映射表条目所属的按索引组织的表(如果有)的名称。如果IOT_TYPE列不为空,则此列包含基表名
STATUSVARCHAR2(63)如果以前的
DROP TABLE
操作失败,指示表是否不可用(UNUSABLE)或有效(VALID)
PCT_FREEVARCHAR2(63)块中可用空间的最小百分比;分区表为空
PCT_USEDINTEGER块中已用空间的最小百分比;分区表为空
INI_TRANSINTEGER处理的初始数量;分区表为空
MAX_TRANSINTEGER最大处理数量;分区表为空
INITIAL_EXTENTINTEGER初始范围的大小(以字节为单位);分区表为空
NEXT_EXTENTINTEGER二级区段的大小(以字节为单位);NULL用于分区表
MIN_EXTENTSINTEGER段中允许的最小范围数;分区表为空
MAX_EXTENTSINTEGER段中允许的最大范围数;分区表为空
PCT_INCREASEINTEGER范围大小的增加百分比;分区表为空
FREELISTSINTEGER分配给该段的进程空闲列表数;分区表为空
FREELIST_GROUPSINTEGER分配给该段的空闲列表组的数量;分区表为空
LOGGINGINTEGER指示是否记录对表的更改;分区表为空;YES/NO
BACKED_UPVARCHAR2(3)指示自最后一次修改(Y)以来是否备份了表(N)
NUM_ROWSVARCHAR2(1)表中的行数
BLOCKSINTEGER表中已使用数据块的个数
EMPTY_BLOCKSINTEGER表中空(从未使用过)数据块的数量。只有在使用DBMS_STATS包收集表上的统计信息时,才会填充此列
AVG_SPACEINTEGER分配给表的数据块中的平均可用空间量(以字节为单位)
CHAIN_CNTINTEGER表中从一个数据块链接到另一个数据块或已迁移到新块的行数,需要一个链接来保存旧的ROWID
AVG_ROW_LENINTEGER表中一行的平均长度(以字节为单位)
AVG_SPACE_FREELIST_BLOCKSINTEGER自由列表中所有块的平均空闲空间
NUM_FREELIST_BLOCKSINTEGER自由列表上的块数
DEGREEINTEGER每个实例用于扫描表的线程数,或默认值
INSTANCESVARCHAR2(10)要扫描表的实例数,或默认值
CACHEVARCHAR2(5)指示是否将表缓存在缓冲区缓存(Y)中(N)
TABLE_LOCKVARCHAR2(8)表锁定是启用(enabled)还是禁用(disabled)
SAMPLE_SIZEINTEGER用于分析表格的样本量
LAST_ANALYZEDINTEGER该表最近被分析的日期
PARTITIONEDDATE指示表是否分区(YES)或未分区(NO)
IOT_TYPEVARCHAR2(3)如果表是索引组织的表,则IOT_TYPE为IOT、IOT_OVERFLOW或IOT_MAPPING。如果表不是索引组织的表,则IOT_TYPE为NULL
TEMPORARYVARCHAR2(12)表是临时的(Y)还是非临时的(N)
SECONDARYVARCHAR2(1)说明表是否为Oracle数据盒(Y)的ODCIIndexCreate方法创建的辅助对象(N)
NESTEDVARCHAR2(1)指示表是嵌套表(是)还是非嵌套表(否)
BUFFER_POOLVARCHAR2(3)表的缓冲池;分区表为空
ROW_MOVEMENTVARCHAR2(7)指示分区行移动是启用(enabled)还是禁用(disabled)
GLOBAL_STATSVARCHAR2(8)如果统计信息被收集或增量维护,GLOBAL_STATS将为YES,否则为NO
USER_STATSVARCHAR2(3)表示统计数据是由用户直接输入的(YES)还是不是(NO)
DURATIONVARCHAR2(3)临时表的持续时间,取值如下所示。
SYS$SESSION - 行在会话期间保留
SYS$TRANSACTION - 行在提交后被删除
Null - 永久表
SKIP_CORRUPTVARCHAR2(15)指示Oracle数据库是否在表和索引扫描期间忽略标记为损坏的块(启用)或引发错误(禁用)。要启用此特性,请运行DBMS_REPAIR。SKIP_CORRUPT_BLOCKS过程
MONITORINGVARCHAR2(8)死元组
CLUSTER_OWNERVARCHAR2(3)表所属集群的所有者(如果有的话)
DEPENDENCIESVARCHAR2(63)指示行级依赖项跟踪是启用(启用)还是禁用(禁用)
COMPRESSIONVARCHAR2(8)表压缩是否启用(启用)或不启用(禁用);对于分区表,为NULL
DROPPEDVARCHAR2(8)指示表是否已被删除,是否在回收站(YES)或(NO);对于分区表,为NULL,此视图不返回已删除的表的名称
VARCHARBYTEVARCHAR2(3)默认值

all_trigger_cols

all_trigger_cols视图描述当前用户可访问的所有触发器的列。

all_trigger_cols的列

名称类型描述
TRIGGER_OWNERVARCHAR2(63)触发器的拥有者
TRIGGER_NAMEVARCHAR2(63)触发器名
TABLE_OWNERVARCHAR2(63)表的拥有者
TABLE_NAMEVARCHAR2(63)表名
COLUMN_NAMEVARCHAR2(4000)列名

all_triggers

all_triggers视图描述当前用户可访问的所有触发器。

all_triggers的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
TRIGGER_NAMEVARCHAR2(63)触发器名
TRIGGER_TYPEVARCHAR2(16)触发器类型
TRIGGERING_EVENTVARCHAR2(216)触发触发器的DML、DDL或数据库事件
TABLE_OWNERVARCHAR2(63)表的拥有者
TABLE_NAMEVARCHAR2(63)表名
BASE_OBJECT_TYPEVARCHAR2(16)定义触发器的基对象,取值如下所示
TABLE
VIEW
SCHEMA
DATABASE
COLUMN_NAMEVARCHAR2(4000)列名
REFERENCING_NAMESVARCHAR2(422)用于从触发器中引用OLD和NEW列值的名称
DESCRIPTIONVARCHAR2(4000)触发描述;用于重新创建触发器创建语句
STATUSVARCHAR2(8)指示触发器是启用(enabled)还是禁用(disabled);禁用的触发器不会触发
TRIGGER_BODYTEXT触发器触发时执行的语句
WHEN_CLAUSETEXT触发器触发条件
ACTION_TYPEVARCHAR2(4)触发器体的动作类型(仅支持CALL)

all_users

all_users视图列出当前用户可见的数据库的所有用户。

all_users的列

名称类型描述
USERNAMEVARCHAR2(63)用户名
USER_IDNUMERIC(38,0)用户id
CREATEDDATE创建用户的时间

all_views

all_views视图描述当前用户所能查看的所有的视图信息。

all_views的列

名称类型描述
OWNERVARCHAR2(63)视图的拥有者
VIEW_NAMEVARCHAR2(63)视图名
TEXT_LENGTHNUMERIC视图文本的长度
TEXTTEXT查看文本。只有当行起源于当前容器时,此列才返回正确的值。在此视图中,BEQUEATH子句不会作为TEXT列的一部分出现
TYPE_TEXT_LENGTHNUMERIC视图的类型子句的长度
TYPE_TEXTVARCHAR2(4000)视图的类型子句
OID_TEXT_LENGTHNUMERIC视图的WITH OID子句的长度
OID_TEXTVARCHAR2(4000)视图的WITH OID子句
VIEW_TYPE_OWNERVARCHAR2(63)如果视图是类型化视图,则为视图类型的所有者
VIEW_TYPEVARCHAR2(63)如果视图是类型化视图,则为视图的类型
SUPERVIEW_NAMEVARCHAR2(63)父视图的名称
EDITIONING_VIEWVARCHAR2(1)保留供将来使用
READ_ONLYVARCHAR2(1)指示视图是否只读(Y) (N)

db_files

db_files视图描述数据库中所有表空间、表空间使用的存储容量及表空间所在存储设备的容量信息。

db_files的列

名称类型描述
NAMENAME命名空间
USEDBIGINT使用的百分比
CAPACITYBIGINT总空间
RATIONUMERIC百分比

dba_arguments

dba_arguments视图列出数据库中可用的过程和函数的参数。

dba_arguments的列

名称类型描述
OWNERCHARACTER VARYING对象的拥有者
PACKAGE_NAMECHARACTER VARYING包的名称
OBJECT_NAMECHARACTER VARYING过程或函数的名称
OBJECT_IDOID对象的对象号
POSITIONINTEGER此列保存该项在参数列表中的位置,0表示函数返回值
ARGUMENT_NAMECHARACTER VARYING参数名称,空参数名用于表示函数返回
IN_OUTCHARACTER VARYING入参/出参类型
IN
OUT
IN/OUT
TYPE_NAMECHARACTER VARYING实参类型的名称。如果类型是包本地类型(也就是说,它在包规范中声明),则此列显示包的名称
OVERLOADCHARACTER VARYING指示第n个重载(按其在源中的出现顺序);否则,它是NULL
SUBPROGRAM_IDINTEGER唯一子程序标识符
SEQUENCEINTEGER定义参数的顺序。参数序列从1开始。首先是返回类型,然后是每个参数
DATA_LEVELINTEGER复合类型实参的嵌套深度
DATA_TYPECHARACTER VARYING参数的数据类型
DEFAULTEDCHARACTER VARYING指定参数是否为默认值
DEFAULT_VALUETEXT保留供将来使用
DEFAULT_LENGTHINTEGER保留供将来使用
DATA_LENGTHINTEGER列长度(以字节为单位)
DATA_PRECISIONINTEGER十进制数字(NUMBER)或二进制数字(FLOAT)的长度
DATA_SCALEINTEGER小数点右边的数字
RADIXINTEGER一个数字的基数参数
CHARACTER_SET_NAMECHARACTER VARYING参数的字符集名称
TYPE_OWNERCHARACTER VARYING参数类型的所有者
TYPE_SUBNAMECHARACTER VARYING只与包本地类型相关。显示在TYPE_NAME列标识的包中声明的类型的名称
TYPE_LINKCHARACTER VARYING当TYPE_NAME列中标识的包是远程包时,仅与包本地类型相关。此列显示用于引用远程包的数据库链接
TYPE_OBJECT_TYPECHARACTER VARYING显示由TYPE_OWNER、TYPE_NAME和TYPE_SUBNAME列描述的类型的类型。取值包括:
TABLE
VIEW
PACKAGE
TYPE
PLS_TYPECHARACTER VARYING对于数值形参,实参的PL/SQL类型的名称。否则无效
CHAR_LENGTHINTEGER字符串数据类型的字符限制
CHAR_USEDCHARACTER VARYING指示字符串的字节限制(B)或字符限制(C)是否正式
ORIGIN_CON_IDINTEGER数据产生的容器的ID。可能的值包括:
0:该值用于非cdb中的行。此值不用于cdb
n:该值用于包含起源于容器ID为n的容器的数据的行(如果该行起源于root,则n = 1)

dba_col_comments

dba_col_comments视图在数据库中所有表和视图的列上显示注释。

dba_col_comments的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
TABLE_NAMEVARCHAR2(63)对象名
COLUMN_NAMEVARCHAR2(63)列名
COMMENTSVARCHAR2(4000)描述

dba_col_privs

dba_col_privs视图描述所有列级权限。

dba_col_privs的列

名称类型描述
GRANTORVARCHAR2(63)执行授权的用户的名称
OWNERVARCHAR2(63)对象的拥有者
GRANTEEVARCHAR2(63)授予访问权的用户或角色的名称
TABLE_CATALOGVARCHAR2(63)当前的数据库
TABLE_SCHEMAVARCHAR2(63)对象的模式
TABLE_NAMEVARCHAR2(63)表名
COLUMN_NAMEVARCHAR2(63)列名
PRIVILEGE_TYPEVARCHAR2(40)权限名称
IS_GRANTABLEVARCHAR2(3)允许访问

dba_cons_columns

dba_cons_columns视图描述约束中指定的数据库中的所有列。

dba_cons_columns的列

名称类型描述
OWNERVARCHAR2(63)兑现的拥有者
CONSTRAINT_NAMEVARCHAR2(63)约束名
TABLE_NAMEVARCHAR2(63)表名
COLUMN_NAMEVARCHAR2(4000)列名
POSITIONNUMERIC定义中列的原始位置

dba_constraints

dba_constraints视图描述当前用户所拥有的表的所有约束定义。

dba_constraints的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
CONSTRAINT_NAMEVARCHAR2(63)约束名
CONSTRAINT_TYPEVARCHAR2(1)约束定义的类型,如下所示。
C -表上的检查约束
P -主键
U -唯一密钥
R -外键
T -受限触发器
X -排他性约束
TABLE_NAMEVARCHAR2(63)表名
SEARCH_CONDITIONTEXT检查约束的搜索条件的文本。只有当行起源于当前容器时,此列才返回正确的值
R_OWNERVARCHAR2(63)引用约束中引用的表的所有者
R_CONSTRAINT_NAMEVARCHAR2(63)引用表的唯一约束定义的名称
DELETE_RULEVARCHAR2(9)引用约束的删除规则,如下所示。
RESTRICT
CASCADE
NULL
SET NULL
SET DEFAULT
NO ACTION
STATUSTEXT约束的实施状态,如下所示。
ENABLED
DISABLED
DEFERRABLEVARCHAR2(14)指示约束是否可延迟(deferrable)或不可延迟(not deferrable)
DEFERREDVARCHAR2(9)指示约束最初是否被延迟(deferred) (IMMEDIATE)
VALIDATEDVARCHAR2(13)当STATUS = ENABLED时,可能的取值如下所示。
VALIDATED -所有数据都遵守约束(也就是说,当启用约束时,表中的现有数据以及输入到表中的任何后续数据都将得到验证)
NOVALIDATED -所有数据都可能不遵守约束(也就是说,当启用约束时,表中现有的数据没有被验证,但是输入到表中的后续数据被验证)
GENERATEDVARCHAR2(14)指示约束的名称是用户生成(USER name)还是系统生成(GENERATED name)
BADVARCHAR2(3)指示此约束是否以模糊的方式指定世纪(BAD)或否(NULL)。为了避免这种模糊性导致的错误,可以使用带四位数年份的TO_DATE函数重写约束
RELYVARCHAR2(4)当VALIDATED = NOT VALIDATED时,此列表示查询重写(RELY)时是否考虑约束(NULL)
LAST_CHANGETIMESTAMP(0) WITHOUT TIME ZONE约束最后一次启用或禁用的时间
INDEX_OWNERVARCHAR2(63)拥有索引的用户名
INDEX_NAMEVARCHAR2(63)索引的名称(仅在唯一和主键约束时显示)
INVALIDVARCHAR2(7)指示约束是否无效(invalid)或无效(NULL)
VIEW_RELATEDVARCHAR2(14)指示约束是否依赖于视图(DEPEND on view) (NULL)

dba_ind_columns

dba_ind_columns视图描述数据库中所有建有索引的列的信息。

dba_ind_columns的列

名称类型描述
INDEX_OWNERVARCHAR2(63)对象的拥有者
INDEX_NAMEVARCHAR2(63)索引名
TABLE_OWNERVARCHAR2(63)表的拥有者
TABLE_NAMEVARCHAR2(63)表名
COLUMN_NAMEVARCHAR2(4000)列名
COLUMN_POSITIONSMALLINT索引中的列或属性的位置
COLUMN_LENGTHNUMERIC列的索引长度
CHAR_LENGTHNUMERIC列的最大码点长度
DESCENDVARCHAR2(4)列是否按降序排序(Y/N)

dba_indexes

dba_indexes视图描述数据库中所有索引的信息。

dba_indexes的列

名称类型描述
OWNERVARCHAR2(63)索引的拥有者
INDEX_NAMEVARCHAR2(63)索引名
INDEX_TYPEVARCHAR2(63)索引类型
TABLE_OWNERVARCHAR2(63)表的拥有者
TABLE_NAMEVARCHAR2(63)表名
TABLE_TYPETEXT表类型
UNIQUENESSVARCHAR2(9)索引的惟一状态
COMPRESSIONVARCHAR2(8)用于索引的压缩类型
PREFIX_LENGTHNUMERIC压缩键前缀中的列数
TABLESPACE_NAMEVARCHAR2(63)包含索引的表空间的名称
INI_TRANSVARCHAR2(7)初始交易数量
MAX_TRANSVARCHAR2(7)最大交易数量
INITIAL_EXTENTVARCHAR2(7)初始范围的大小
NEXT_EXTENTVARCHAR2(7)辅助扩展区的大小
MIN_EXTENTSVARCHAR2(7)段中允许的最小范围数
MAX_EXTENTSVARCHAR2(7)段中允许的最大范围数
PCT_INCREASEVARCHAR2(7)区大小增加的百分比
PCT_THRESHOLDVARCHAR2(7)每个索引条目允许的块空间百分比阈值
INCLUDE_COLUMNVARCHAR2(7)要包含在按索引组织的表主键(非溢出)索引中的最后一列的列ID
FREELISTSVARCHAR2(7)分配给该段的进程空闲列表数
FREELIST_GROUPSVARCHAR2(7)分配给该段的空闲列表组的数量
PCT_FREEVARCHAR2(7)块中可用空间的最小百分比
LOGGINGVARCHAR2(7)指示是否记录对索引的更改:
BLEVELVARCHAR2(7)b *-树级别(从其根块到其叶块的索引深度)。深度0表示根块和叶块是相同的
LEAF_BLOCKSVARCHAR2(7)索引中的叶块数
DISTINCT_KEYSVARCHAR2(7)不同索引值的数量。对于强制执行的索引UNIQUE和PRIMARY KEY约束,该值与表中的行数相同(*_TABLES.NUM_ROWS)
AVG_LEAF_BLOCKS_PER_KEYVARCHAR2(7)索引中每个不同值出现的叶块数的平均值,四舍五入为最接近的整数。对于强制执行的索引UNIQUE和PRIMARY KEY约束,该值始终为1
AVG_DATA_BLOCKS_PER_KEYVARCHAR2(7)表中由索引中的非重复值指向的平均数据块数,四舍五入为最接近的整数。此统计信息是包含索引列中包含给定值的行的数据块的平均数量
CLUSTERING_FACTORVARCHAR2(7)根据索引值指示表中行的顺序。如果该值接近块数,则该表非常有序。在这种情况下,单个叶块中的索引条目倾向于指向相同数据块中的行;如果该值接近行数,则该表是随机排序的。在这种情况下,同一叶块中的索引条目不太可能指向同一数据块中的行
STATUSVARCHAR2(8)指示非分区索引是否为VALID或者UNUSABLE
NUM_ROWSVARCHAR2(7)索引中的行数。
SAMPLE_SIZEVARCHAR2(7)用于分析指数的样本大小
LAST_ANALYZEDVARCHAR2(20)最近分析此索引的日期
DEGREEVARCHAR2(40)每个实例用于扫描索引的线程数,或者DEFAULT
INSTANCESVARCHAR2(40)要扫描索引的实例数,或者DEFAULT
PARTITIONEDVARCHAR2(3)指示索引是否已分区(YES)还是不(NO)
TEMPORARYVARCHAR2(1)指示索引是否在临时表上(Y)还是不(N)
GENERATEDVARCHAR2(1)指示索引的名称是否是系统生成的(Y)还是不(N)
SECONDARYVARCHAR2(1)指示该索引是否是由ODCIIndexCreateOracle数据盒式磁带的方法(Y)还是不(N)
BUFFER_POOLVARCHAR2(7)用于索引块的缓冲池:
USER_STATSVARCHAR2(3)指示统计信息是否由用户直接输入(YES)还是不(NO)
DURATIONVARCHAR2(15)指示临时表的持续时间
SYS$SESSION-在会话期间保留行
SYS$TRANSACTION-行在以下时间后被删除COMMIT
PCT_DIRECT_ACCESSVARCHAR2(7)对于按索引组织的表上的辅助索引,包含以下内容的行的百分比VALID猜测
ITYP_OWNERVARCHAR2(63)对于域索引,索引类型的所有者
ITYP_NAMEVARCHAR2(63)对于域索引,是索引类型的名称
PARAMETERSVARCHAR2(1000)对于域索引,参数字符串
GLOBAL_STATSVARCHAR2(3)GLOBAL_STATS将会YES如果统计数据被收集或增量维护,则它将NO
DOMIDX_STATUSVARCHAR2(12)域索引的状态,如下所示
空索引不是域索引
VALID- Index是有效的域索引
IDXTYP_INVLD-域索引的Indextype无效
DOMIDX_OPSTATUSVARCHAR2(6)域索引的操作状态,如下所示
空索引不是域索引
VALID-操作执行无误
FAILED-操作失败,出现错误
FUNCIDX_STATUSVARCHAR2(8)基于函数的索引的状态,如下所示
空索引不是基于函数的索引
ENABLED-启用基于函数的索引
DISABLED-基于函数的索引被禁用
JOIN_INDEXTEXT指示该索引是否是联接索引(YES)还是不(NO)
IOT_REDUNDANT_PKEY_ELIMTEXT指示是否从按索引组织的表上的辅助索引中删除了冗余的主键列(YES)还是不(NO)
DROPPEDTEXT指示该索引是否已被删除并在回收站中(YES)还是不(NO);分区表为空。该视图不返回已被删除的索引的名称

dba_objects

dba_objects视图描述当前用户下可以查看的所有对象。

dba_objects的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
OBJECT_NAMEVARCHAR2(63)对象名
SUBOBJECT_NAMEVARCHAR2(63)子对象的名称
OBJECT_IDNUMERIC(38,0)对象的对象号
DATA_OBJECT_IDNUMERIC(38,0)包含该对象的段的字典对象号
OBJECT_TYPEVARCHAR2(19)对象类型
CREATEDDATE对象创建的时间戳
LAST_DDL_TIMEDATE对象和DDL语句产生的依赖对象的最后修改的时间戳(包括授予和撤销)
TIMESTAMPVARCHAR2(20)对象规范的时间戳(字符数据)
STATUSVARCHAR2(7)对象的状态
TEMPORARYVARCHAR2(1)对象是否是临时的
GENERATEDVARCHAR2(1)是否生成此对象系统的名称
SECONDARYVARCHAR2(1)指示这是否是Oracle Data Cartridge的ODCIIndexCreate方法创建的辅助对象
NAMESPACENUMERIC(38,0)命名空间

dba_queues

dba_queues视图提供任何当前已定义队列的相关信息。

dba_queues的列

名称类型描述
ownerTCHARACTER VARYING队列所有者的用户名
nameNAME队列的名称
queue_tableNAME队列所在队列表的名称
qidOID队列的系统分配对象ID
queue_typeCHARACTER VARYING队列类型;当前仅NORMAL_QUEUE
max_retriesNUMERIC出队尝试的最大次数(仅兼容)
retrydelayNUMERIC两次重试之间允许的最长时间(仅兼容)
enqueue_enabledCHARACTER VARYING如果队列允许入队,则为 YES;如果队列不允许入队,则为 NO。
dequeue_enabledCHARACTER VARYING如果队列允许出队,则为 YES;如果队列不允许出队,则为 NO。
retentionCHARACTER VARYING已处理的消息保留在队列中的秒数(仅兼容)
user_commentCHARACTER VARYING用户指定的注释
network_nameCHARACTER VARYING(仅兼容)
shardedCHARACTER VARYING(仅兼容)

dba_queue_tables

dba_queue_tables视图提供数据库中的所有队列表的相关信息。

dba_queue_tables的列

名称类型描述
ownerCHARACTER VARYING队列表所有者的角色名
queue_tableNAME队列表的用户指定名称
typeCHARACTER VARYING队列表中存储的数据的类型
object_typeTEXT用户定义的有效负载类型
sort_orderCHARACTER VARYING队列表的排序顺序(仅兼容)
recipientsCHARACTER VARYING(仅兼容)
message_groupingCHARACTER VARYING(仅兼容)
compatibleCHARACTER VARYING(仅兼容)
primary_instanceNUMERIC(仅兼容)
secondary_instanceNUMERIC(仅兼容)
owner_instanceNUMERIC(仅兼容)
user_commentCHARACTER VARYING创建表时提供的用户注释
secureCHARACTER VARYING(仅兼容)

dba_role_privs

dba_role_privs视图描述授予所有用户的角色以及数据库中的角色。

dba_role_privs的列

名称类型描述
GRANTEEVARCHAR2(63)接收授权的用户或角色的名称
GRANTED_ROLEVARCHAR2(63)授予的角色名
ADMIN_OPTIONVARCHAR2(3)指示授予是否带有管理选项(YES)或否(NO)
DEFAULT_ROLEVARCHAR2(3)指示角色是否被指定为用户的默认角色(YES)或否(NO)

dba_roles

dba_roles视图列出数据库中存在的所有角色。

dba_roles的列

名称类型描述
ROLEVARCHAR2(63)角色名称
PASSWORD_REQUIREDVARCHAR2(28)密码

dba_sequences

dba_sequences视图描述数据库中所有的序列。

dba_sequences的列

名称类型描述
SEQUENCE_OWNERVARCHAR2(63)序列的拥有者
SEQUENCE_NAMEVARCHAR2(63)序列名
MIN_VALUENUMERIC(38,0)序列的最小值
MAX_VALUENUMERIC(38,0)序列的最大值
INCREMENT_BYNUMERIC(38,0)序列按该值递增
CYCLE_FLAGVARCHAR2(1)指示序列在达到极限(Y)时是否换行(N)
ORDER_FLAGVARCHAR2(1)指示序列号是否按(Y)的顺序生成(N)
CACHE_SIZENUMERIC(38,0)要缓存的序列号的个数
LAST_NUMERICNUMERIC(38,0)最后写入磁盘的序列号。如果序列使用缓存,则写入磁盘的数字是序列缓存中的最后一个数字。这个数字很可能大于所使用的最后一个序列号。对于会话序列,应忽略此列中的值

dba_source

dba_source视图描述数据库中所有存储对象的文本源。

dba_source的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
NAMEVARCHAR2(63)对象名
TYPEVARCHAR2(12)对象类型:FUNCTION, JAVA SOURCE, PACKAGE, PACKAGE BODY, PROCEDURE, TRIGGER, TYPE, TYPE BODY
TEXTVARCHAR2(4000)存储对象的文本源

dba_synonyms

dba_synonyms视图描述数据库中所有同义词的信息。

dba_synonyms的列

名称类型描述
OWNERVARCHAR2(63)同义词的所有者
SYNONYM_NAMESPACE_NAMEVARCHAR2(63)同义词的命名空间
SYNONYM_NAMEVARCHAR2(63)同义词名
TABLE_OWNERVARCHAR2(63)由同义词引用的对象的所有者
TABLE_NAMESPACE_NAMEVARCHAR2(63)表的命名空间
TABLE_NAMEVARCHAR2(63)由同义词引用的对象的名称
DBLINKTEXT引用的数据库链接的名称(如果有的话)

dba_tab_cols

dba_tab_cols视图描述当前所在数据库中,所有的表、视图的列信息。

dba_tab_cols的列

名称类型描述
OWNERVARCHAR2(63)表、视图的拥有者
TABLE_NAMEVARCHAR2(63)表、视图的名称
COLUMN_NAMEVARCHAR2(63)列名
DATA_TYPEVARCHAR2(106)列的数据类型
DATA_TYPE_MODVARCHAR2(3)列的数据类型修饰符
DATA_TYPE_OWNERVARCHAR2(63)列的数据类型的所有者
DATA_LENGTHNUMERIC列长度(以字节为单位)
DATA_PRECISIONNUMERIC数字数据类型的十进制精度;浮点型的二进制精度;所有其他数据类型为空
DATA_SCALENUMERIC位数:数字中小数点右边的位数
NULLABLEVARCHAR2(1)指示列是否允许为空。如果列上存在非NULL约束或列是主键的一部分,则该值为N
COLUMN_IDNUMERIC创建的列的序列号
DEFAULT_LENGTHNUMERIC列的默认值的长度
DATA_DEFAULTtext列的默认值
NUM_DISTINCTNUMERIC列中不同值的数目
LOW_VALUENUMERIC列中的低值
HIGH_VALUENUMERIC列中的高值
DENSITYNUMERIC如果柱状图在COLUMN_NAME上可用,则此列显示在柱状图中跨越少于2个端点的值的选择性。它不表示跨越2个或多个端点的值的选择性。如果柱状图在COLUMN_NAME上不可用,则该列的值为1/NUM_DISTINCT
NUM_NULLSNUMERIC列中空值的数目
NUM_BUCKETSNUMERIC列的直方图中的桶数。注意:直方图中的桶数是在ANALYZE SQL语句的SIZE参数中指定的。然而,Oracle数据库并没有创建一个比样本行数更多的桶的直方图。此外,如果样本中包含任何重复的值,Oracle数据库会创建指定数量的桶,但由于内部压缩算法的原因,这一列显示的值可能更小
LAST_ANALYZEDTIMESTAMP(0) WITHOUT TIME ZONE这一栏最近分析的日期
SAMPLE_SIZENUMERIC用于分析该列的样本量
CHARACTER_SET_NAMEVARCHAR2(44)字符集名称:CHAR_CS/NCHAR_CS
CHAR_COL_DECL_LENGTHNUMERIC字符类型列的声明长度
GLOBAL_STATSVARCHAR2(3)如果统计信息被收集或增量维护,GLOBAL_STATS将为YES,否则为NO
USER_STATSVARCHAR2(3)指示统计信息是否由用户直接输入(YES)或(NO)
AVG_COL_LENNUMERIC列的平均长度(以字节计)
CHAR_LENGTHNUMERIC以字符为单位显示列的长度。该值仅适用于以下数据类型。
CHAR
VARCHAR2
NCHAR
NVARCHAR2
CHAR_USEDVARCHAR2(1)指示列使用BYTE长度语义(B)或CHAR长度语义(C),或者数据类型不是以下任何一种(NULL)。
CHAR
VARCHAR2
NCHAR
NVARCHAR2
V80_FMT_IMAGEVARCHAR2(3)指示列数据是否为8.0版本图像格式(YES)或否(NO)
DATA_UPGRADEDVARCHAR2(3)指示列数据是否已升级为最新类型版本格式(YES)或(NO)
HIDDEN_COLUMNVARCHAR2(3)指示列是否是隐藏列(YES)或不是(NO)
VIRTUAL_COLUMNVARCHAR2(3)指示列是否是虚拟列(YES)或不是(NO)
SEGMENT_COLUMN_IDNUMERIC段中列的序列号
INTERNAL_COLUMN_IDNUMERIC列的内部序列号
HISTOGRAMVARCHAR2(15)表示直方图的存在/类型。取值如下所示。
NONE
FREQUENCY
TOP-FREQUENCY
HEIGHT BALANCED
HYBRID
QUALIFIED_COL_NAMEVARCHAR2(4000)限定的列名

dba_tab_columns

dba_tab_columns视图描述当前所在数据库中,所有的表、视图的非隐藏列信息。

dba_tab_columns的列

名称类型描述
OWNERVARCHAR2(63)表的拥有者
TABLE_NAMEVARCHAR2(63)表、视图的名称
COLUMN_NAMEVARCHAR2(63)列名
DATA_TYPEVARCHAR2(106)列的数据类型
DATA_TYPE_MODVARCHAR2(3)列的数据类型修饰符
DATA_TYPE_OWNERVARCHAR2(63)列的数据类型的所有者
DATA_LENGTHNUMERIC列长度(以字节为单位)
DATA_PRECISIONNUMERIC数字数据类型的十进制精度;浮点型的二进制精度;所有其他数据类型为空
DATA_SCALENUMERIC位数:数字中小数点右边的位数
NULLABLEVARCHAR2(1)指示列是否允许为空。如果列上存在非NULL约束或列是主键的一部分,则该值为N
COLUMN_IDNUMERIC创建的列的序列号
DEFAULT_LENGTHNUMERIC列的默认值的长度
DATA_DEFAULTTEXT列的默认值
NUM_DISTINCTNUMERIC列中不同值的数目
LOW_VALUENUMERIC列中的低值
HIGH_VALUENUMERIC列中的高值
DENSITYNUMERIC如果柱状图在COLUMN_NAME上可用,则此列显示在柱状图中跨越少于2个端点的值的选择性。它不表示跨越2个或多个端点的值的选择性。如果柱状图在COLUMN_NAME上不可用,则该列的值为1/NUM_DISTINCT
NUM_NULLSNUMERIC列中空值的数目
NUM_BUCKETSNUMERIC列的直方图中的桶数。注意:直方图中的桶数是在ANALYZE SQL语句的SIZE参数中指定的。然而,Oracle数据库并没有创建一个比样本行数更多的桶的直方图。此外,如果样本中包含任何重复的值,Oracle数据库会创建指定数量的桶,但由于内部压缩算法的原因,这一列显示的值可能更小
LAST_ANALYZEDTIMESTAMP(0) WITHOUT TIME ZONE这一栏最近分析的日期
SAMPLE_SIZENUMERIC用于分析该列的样本量
CHARACTER_SET_NAMEVARCHAR2(44)字符集名称:CHAR_CS/NCHAR_CS
CHAR_COL_DECL_LENGTHNUMERIC字符类型列的声明长度
GLOBAL_STATSVARCHAR2(3)如果统计信息被收集或增量维护,GLOBAL_STATS将为YES,否则为NO
USER_STATSVARCHAR2(3)指示统计信息是否由用户直接输入(YES)或(NO)
AVG_COL_LENNUMERIC列的平均长度(以字节计)
CHAR_LENGTHNUMERIC以字符为单位显示列的长度。该值仅适用于以下数据类型。
CHAR
VARCHAR2
NCHAR
NVARCHAR2
CHAR_USEDVARCHAR2(1)指示列使用BYTE长度语义(B)或CHAR长度语义(C),或者数据类型不是以下任何一种(NULL)。
CHAR
VARCHAR2
NCHAR
NVARCHAR2
V80_FMT_IMAGEVARCHAR2(3)指示列数据是否为8.0版本图像格式(YES)或否(NO)
DATA_UPGRADEDVARCHAR2(3)指示列数据是否已升级为最新类型版本格式(YES)或(NO)
HISTOGRAMVARCHAR2(15)表示直方图的存在/类型。取值如下所示。
NONE
FREQUENCY
TOP-FREQUENCY
HEIGHT BALANCED
HYBRID

dba_tab_comments

dba_tab_comments视图显示数据库中所有表和视图的注释。

dba_tab_comments的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
TABLE_NAMEVARCHAR2(63)表名
TABLE_TYPEVARCHAR2(11)表类型
COMMENTSVARCHAR2(4000)注释

dba_tab_privs

dba_tab_privs视图描述数据库中的所有对象授予。

dba_tab_privs的列

名称类型描述
GRANTEEVARCHAR2(63)授予访问权的用户或角色的名称
OWNERVARCHAR2(63)对象的所有者
TABLE_NAMEVARCHAR2(63)对象名称
GRANTORVARCHAR2(63)执行授权的用户的名称
PRIVILEGEVARCHAR2(40)对象上的特权
GRANTABLEVARCHAR2(3)指示是否使用
GRANT OPTION
(YES)或否(NO)授予特权

dba_tables

dba_tables视图描述数据库中的所有表。

dba_tables的列

名称类型描述
OWNERVARCHAR2(63)表的拥有者
TABLE_NAMEVARCHAR2(63)表的名称
TABLESPACE_NAMEVARCHAR2(63)包含该表的表空间的名称;对于分区表、临时表和按索引组织的表,为NULL
CLUSTER_NAMEVARCHAR2(63)表所属的集群的名称(如果有)
IOT_NAMEVARCHAR2(63)溢出或映射表条目所属的按索引组织的表(如果有)的名称。如果IOT_TYPE列不为空,则此列包含基表名
STATUSVARCHAR2(63)如果以前的
DROP TABLE
操作失败,指示表是否不可用(UNUSABLE)或有效(VALID)
PCT_FREEINTEGER块中可用空间的最小百分比;分区表为空
PCT_USEDINTEGER块中已用空间的最小百分比;分区表为空
INI_TRANSINTEGER处理的初始数量;分区表为空
MAX_TRANSINTEGER最大处理数量;分区表为空
INITIAL_EXTENTINTEGER初始范围的大小(以字节为单位);分区表为空
NEXT_EXTENTINTEGER二级区段的大小(以字节为单位);NULL用于分区表
MIN_EXTENTSINTEGER段中允许的最小范围数;分区表为空
MAX_EXTENTSINTEGER段中允许的最大范围数;分区表为空
PCT_INCREASEINTEGER范围大小的增加百分比;分区表为空
FREELISTSINTEGER分配给该段的进程空闲列表数;分区表为空
FREELIST_GROUPSINTEGER分配给该段的空闲列表组的数量;分区表为空
LOGGINGVARCHAR2(3)指示是否记录对表的更改;分区表为空;YES/NO
BACKED_UPVARCHAR2(1)指示自最后一次修改(Y)以来是否备份了表(N)
NUM_ROWSINTEGER表中的行数
BLOCKSINTEGER表中已使用数据块的个数
EMPTY_BLOCKSINTEGER表中空(从未使用过)数据块的数量。只有在使用DBMS_STATS包收集表上的统计信息时,才会填充此列
AVG_SPACEINTEGER分配给表的数据块中的平均可用空间量(以字节为单位)
CHAIN_CNTINTEGER表中从一个数据块链接到另一个数据块或已迁移到新块的行数,需要一个链接来保存旧的ROWID
AVG_ROW_LENINTEGER表中一行的平均长度(以字节为单位)
AVG_SPACE_FREELIST_BLOCKSINTEGER自由列表中所有块的平均空闲空间
NUM_FREELIST_BLOCKSINTEGER自由列表上的块数
DEGREEVARCHAR2(10)每个实例用于扫描表的线程数,或默认值
INSTANCESVARCHAR2(10)要扫描表的实例数,或默认值
CACHEVARCHAR2(5)指示是否将表缓存在缓冲区缓存(Y)中(N)
TABLE_LOCKVARCHAR2(8)表锁定是启用(enabled)还是禁用(disabled)
SAMPLE_SIZEINTEGER用于分析表格的样本量
LAST_ANALYZEDDATE该表最近被分析的日期
PARTITIONEDVARCHAR2(3)指示表是否分区(YES)或未分区(NO)
IOT_TYPEVARCHAR2(12)如果表是索引组织的表,则IOT_TYPE为IOT、IOT_OVERFLOW或IOT_MAPPING。如果表不是索引组织的表,则IOT_TYPE为NULL
TEMPORARYVARCHAR2(1)表是临时的(Y)还是非临时的(N)
SECONDARYVARCHAR2(1)说明表是否为Oracle数据盒(Y)的ODCIIndexCreate方法创建的辅助对象(N)
NESTEDVARCHAR2(3)指示表是嵌套表(是)还是非嵌套表(否)
BUFFER_POOLVARCHAR2(7)表的缓冲池;分区表为空
ROW_MOVEMENTVARCHAR2(8)指示分区行移动是启用(enabled)还是禁用(disabled)
GLOBAL_STATSVARCHAR2(3)如果统计信息被收集或增量维护,GLOBAL_STATS将为YES,否则为NO
USER_STATSVARCHAR2(3)表示统计数据是由用户直接输入的(YES)还是不是(NO)
DURATIONVARCHAR2(15)临时表的持续时间,取值如下所示。
SYS$SESSION - 行在会话期间保留
SYS$TRANSACTION - 行在提交后被删除
Null - 永久表
SKIP_CORRUPTVARCHAR2(8)指示Oracle数据库是否在表和索引扫描期间忽略标记为损坏的块(启用)或引发错误(禁用)。要启用此特性,请运行DBMS_REPAIR。SKIP_CORRUPT_BLOCKS过程
MONITORINGVARCHAR2(3)死元组
CLUSTER_OWNERVARCHAR2(63)表所属集群的所有者(如果有的话)
DEPENDENCIESVARCHAR2(8)指示行级依赖项跟踪是启用(启用)还是禁用(禁用)
COMPRESSIONVARCHAR2(8)表压缩是否启用(启用)或不启用(禁用);对于分区表,为NULL
DROPPEDVARCHAR2(3)指示表是否已被删除,是否在回收站(YES)或(NO);对于分区表,为NULL,此视图不返回已删除的表的名称

dba_tablespace

dba_tablespace视图描述数据库中的表空间。

dba_tablespace的列

名称类型描述
TABLESPACE_NAMEVARCHAR2(63)命名空间名
INITIAL_EXTENTNUMERIC默认的初始区段大小(以字节为单位)
NEXT_EXTENTNUMERIC默认的增量区段大小(以字节为单位)
MIN_EXTENTSNUMERIC默认的最小区段数
MAX_EXTENTSNUMERIC默认的最大区段数
PCT_INCREASENUMERIC区段大小的默认增加百分比
MIN_EXTLENNUMERIC此表空间的最小区段大小(以字节为单位)
STATUSVARCHAR2(9)状态,取值如下所示。
ONLINE
OFFLINE
READ ONLY
CONTENTSVARCHAR2(9)内容:PERMANENT
LOGGINGVARCHAR2(9)默认日志属性
EXTENT_MANAGEMENTVARCHAR2(10)指示表空间中的区段是字典管理的(dictionary)还是本地管理的(LOCAL)
ALLOCATION_TYPEVARCHAR2(9)表空间有效的区段分配类型
PLUGGED_INVARCHAR2(3)指示表空间是否已插入(YES)或(NO)

dba_tablespaces

dba_tablespaces视图描述数据库中的所有表空间。

dba_tablespaces的列

名称类型描述
TABLESPACE_NAMEVARCHAR2(63)命名空间名
INITIAL_EXTENTNUMERIC默认的初始区段大小(以字节为单位)
NEXT_EXTENTNUMERIC默认的增量区段大小(以字节为单位)
MIN_EXTENTSNUMERIC默认的最小区段数
MAX_EXTENTSNUMERIC默认的最大区段数
PCT_INCREASENUMERIC区段大小的默认增加百分比
MIN_EXTLENNUMERIC此表空间的最小区段大小(以字节为单位)
STATUSVARCHAR2(9)状态,取值如下所示。
ONLINE
OFFLINE
READ ONLY
CONTENTSVARCHAR2(9)内容:PERMANENT
LOGGINGVARCHAR2(9)默认日志属性
EXTENT_MANAGEMENTVARCHAR2(10)指示表空间中的区段是字典管理的(dictionary)还是本地管理的(LOCAL)
ALLOCATION_TYPEVARCHAR2(9)表空间有效的区段分配类型
PLUGGED_INVARCHAR2(3)指示表空间是否已插入(YES)或(NO)

dba_trigger_cols

dba_trigger_cols视图描述数据库中所有触发器的列。

dba_trigger_cols的列

名称类型描述
TRIGGER_OWNERVARCHAR2(63)触发器的拥有者
TRIGGER_NAMEVARCHAR2(63)触发器名
TABLE_OWNERVARCHAR2(63)表的拥有者
TABLE_NAMEVARCHAR2(63)表名
COLUMN_NAMEVARCHAR2(4000)列名

dba_triggers

dba_triggers视图描述数据库中所有的触发器。

dba_triggers的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
TRIGGER_NAMEVARCHAR2(63)触发器名
TRIGGER_TYPEVARCHAR2(16)触发器类型
TRIGGERING_EVENTVARCHAR2(216)触发触发器的DML、DDL或数据库事件
TABLE_OWNERVARCHAR2(63)表的拥有者
TABLE_NAMEVARCHAR2(63)表名
BASE_OBJECT_TYPEVARCHAR2(16)定义触发器的基对象,取值如下所示
TABLE
VIEW
SCHEMA
DATABASE
COLUMN_NAMEVARCHAR2(4000)列名
REFERENCING_NAMESVARCHAR2(422)用于从触发器中引用OLD和NEW列值的名称
DESCRIPTIONVARCHAR2(4000)触发描述;用于重新创建触发器创建语句
STATUSVARCHAR2(8)指示触发器是启用(enabled)还是禁用(disabled);禁用的触发器不会触发
TRIGGER_BODYTEXT触发器触发时执行的语句
WHEN_CLAUSETEXT触发器触发条件
ACTION_TYPEVARCHAR2(4)触发器体的动作类型(仅支持CALL)

dba_users

dba_users视图描述数据库中所有用户的信息。

dba_users的列

名称类型描述
USERNAMEVARCHAR2(63)用户名
USER_IDNUMERIC(38,0)用户id
PASSWORDVARCHAR2(63)密码
ACCOUNT_STATUSVARCHAR2(32)状态,如下所示
OPEN
EXPIRED
LOCK_DATEDATE当用户状态为锁定时,用户被锁定的日期
EXPIRY_DATEDATE用户的到期日期
DEFAULT_TABLESPACEVARCHAR2(63)默认数据表空间
TEMPORARY_TABLESPACEVARCHAR2(63)临时表的默认表空间名称或表空间组名称
CREATEDDATE用户创建的时间
PROFILEVARCHAR2(63)用户资源配置文件名称
INITIAL_RSRC_CONSUMER_GROUPVARCHAR2(63)用户的初始资源消费组
EXTERNAL_NAMEVARCHAR2(4000)用户外部名称。对于集中管理的用户,如果数据库用户映射是一个独占映射,那么这将是用户的目录服务DN。如果这个数据库用户是一个共享模式,它将是一个组的DN
PASSWORD_VERSIONSVARCHAR2(8)版本号 eg:2.1.1.5B
EDITIONS_ENABLEDVARCHAR2(1)指示是否为相应的用户(Y)启用了版本(N)

dba_views

dba_views视图描述当前用户的所有视图的信息。

dba_views的列

名称类型描述
OWNERVARCHAR2(63)视图的拥有者
VIEW_NAMEVARCHAR2(63)视图名
TEXT_LENGTHNUMERIC视图文本的长度
TEXTTEXT查看文本。只有当行起源于当前容器时,此列才返回正确的值。在此视图中,BEQUEATH子句不会作为TEXT列的一部分出现
TYPE_TEXT_LENGTHNUMERIC视图的类型子句的长度
TYPE_TEXTVARCHAR2(4000)视图的类型子句
OID_TEXT_LENGTHNUMERIC视图的WITH OID子句的长度
OID_TEXTVARCHAR2(4000)视图的WITH OID子句
VIEW_TYPE_OWNERVARCHAR2(63)如果视图是类型化视图,则为视图类型的所有者
VIEW_TYPEVARCHAR2(63)如果视图是类型化视图,则为视图的类型
SUPERVIEW_NAMEVARCHAR2(63)父视图的名称
EDITIONING_VIEWVARCHAR2(1)保留供将来使用
READ_ONLYVARCHAR2(1)指示视图是否只读(Y) (N)

user_arguments

user_arguments视图描述当前用户拥有的过程和函数的参数。

user_arguments的列

名称类型描述
PACKAGE_NAMECHARACTER VARYING包的名称
OBJECT_NAMECHARACTER VARYING过程或函数的名称
OBJECT_IDOID对象的对象号
POSITIONINTEGER此列保存该项在参数列表中的位置,0表示函数返回值
ARGUMENT_NAMECHARACTER VARYING参数名称,空参数名用于表示函数返回
IN_OUTCHARACTER VARYING入参/出参类型
IN
OUT
IN/OUT
TYPE_NAMECHARACTER VARYING实参类型的名称。如果类型是包本地类型(也就是说,它在包规范中声明),则此列显示包的名称
OVERLOADCHARACTER VARYING指示第n个重载(按其在源中的出现顺序);否则,它是NULL
SUBPROGRAM_IDINTEGER唯一子程序标识符
SEQUENCEINTEGER定义参数的顺序。参数序列从1开始。首先是返回类型,然后是每个参数
DATA_LEVELINTEGER复合类型实参的嵌套深度
DATA_TYPECHARACTER VARYING参数的数据类型
DEFAULTEDCHARACTER VARYING指定参数是否为默认值
DEFAULT_VALUETEXT保留供将来使用
DEFAULT_LENGTHINTEGER保留供将来使用
DATA_LENGTHINTEGER列长度(以字节为单位)
DATA_PRECISIONINTEGER十进制数字(NUMBER)或二进制数字(FLOAT)的长度
DATA_SCALEINTEGER小数点右边的数字
RADIXINTEGER一个数字的基数参数
CHARACTER_SET_NAMECHARACTER VARYING参数的字符集名称
TYPE_OWNERCHARACTER VARYING参数类型的所有者
TYPE_SUBNAMECHARACTER VARYING只与包本地类型相关。显示在TYPE_NAME列标识的包中声明的类型的名称
TYPE_LINKCHARACTER VARYING当TYPE_NAME列中标识的包是远程包时,仅与包本地类型相关。此列显示用于引用远程包的数据库链接
TYPE_OBJECT_TYPECHARACTER VARYING显示由TYPE_OWNER、TYPE_NAME和TYPE_SUBNAME列描述的类型的类型。取值如下所示。
TABLE
VIEW
PACKAGE
TYPE
PLS_TYPECHARACTER VARYING对于数值形参,实参的PL/SQL类型的名称。否则无效
CHAR_LENGTHINTEGER字符串数据类型的字符限制
CHAR_USEDCHARACTER VARYING指示字符串的字节限制(B)或字符限制(C)是否正式
ORIGIN_CON_IDINTEGER数据产生的容器的ID。可能的值包括:
0:该值用于非cdb中的行。此值不用于cdb
n:该值用于包含起源于容器ID为n的容器的数据的行(如果该行起源于root,则n = 1)

user_col_comments

user_col_comments视图在当前用户拥有的表和视图的列上注释。

user_col_comments的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
TABLE_NAMEVARCHAR2(63)对象名
COLUMN_NAMEVARCHAR2(63)列名
COMMENTSVARCHAR2(4000)描述

user_col_privs

user_col_privs视图描述当前用户下的列级权限表。

user_col_privs的列

名称类型描述
GRANTORVARCHAR2(63)执行授权的用户的名称
OWNERVARCHAR2(63)对象的拥有者
GRANTEEVARCHAR2(63)授予访问权的用户或角色的名称
TABLE_CATALOGVARCHAR2(63)当前的数据库
TABLE_SCHEMAVARCHAR2(63)对象的模式
TABLE_NAMEVARCHAR2(63)表名
COLUMN_NAMEVARCHAR2(63)列名
PRIVILEGE_TYPEVARCHAR2(40)权限名称
IS_GRANTABLEVARCHAR2(3)允许访问

user_cons_columns

user_cons_columns视图描述当前用户拥有并在约束中指定的列。

user_cons_columns的列

名称类型描述
OWNERVARCHAR2(63)兑现的拥有者
CONSTRAINT_NAMEVARCHAR2(63)约束名
TABLE_NAMEVARCHAR2(63)表名
COLUMN_NAMEVARCHAR2(4000)列名
POSITIONNUMERIC定义中列的原始位置

user_constraints

user_constraints视图描述当前用户所拥有的表的所有约束定义。

user_constraints的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
CONSTRAINT_NAMEVARCHAR2(63)约束名
CONSTRAINT_TYPEVARCHAR2(1)约束定义的类型,取值如下所示
C -表上的检查约束
P -主键
U -唯一密钥
R -外键
T -受限触发器
X -排他性约束
TABLE_NAMEVARCHAR2(63)表名
SEARCH_CONDITIONtext检查约束的搜索条件的文本。只有当行起源于当前容器时,此列才返回正确的值
R_OWNERVARCHAR2(63)引用约束中引用的表的所有者
R_CONSTRAINT_NAMEVARCHAR2(63)引用表的唯一约束定义的名称
DELETE_RULEVARCHAR2(9)引用约束的删除规则如下所示。
RESTRICT
CASCADE
NULL
SET NULL
SET DEFAULT
NO ACTION
STATUSVARCHAR2(8)约束的实施状态如下所示。
ENABLED
DISABLED
DEFERRABLEVARCHAR2(14)指示约束是否可延迟(deferrable)或不可延迟(not deferrable)
DEFERREDVARCHAR2(9)指示约束最初是否被延迟(deferred) (IMMEDIATE)
VALIDATEDVARCHAR2(13)当STATUS = ENABLED时,可能的值为:
VALIDATED -所有数据都遵守约束(也就是说,当启用约束时,表中的现有数据以及输入到表中的任何后续数据都将得到验证)
NOVALIDATED -所有数据都可能不遵守约束(也就是说,当启用约束时,表中现有的数据没有被验证,但是输入到表中的后续数据被验证)
GENERATEDVARCHAR2(14)指示约束的名称是用户生成(USER name)还是系统生成(GENERATED name)
BADVARCHAR2(3)指示此约束是否以模糊的方式指定世纪(BAD)或否(NULL)。为了避免这种模糊性导致的错误,可以使用带四位数年份的TO_DATE函数重写约束
RELYVARCHAR2(4)当VALIDATED = NOT VALIDATED时,此列表示查询重写(RELY)时是否考虑约束(NULL)
LAST_CHANGETIMESTAMP(0) WITHOUT TIME ZONE约束最后一次启用或禁用的时间
INDEX_OWNERVARCHAR2(63)拥有索引的用户名
INDEX_NAMEVARCHAR2(63)索引的名称(仅在唯一和主键约束时显示)
INVALIDVARCHAR2(7)指示约束是否无效(invalid)或无效(NULL)
VIEW_RELATEDVARCHAR2(14)指示约束是否依赖于视图(DEPEND on view) (NULL)

user_ind_columns

user_ind_columns视图描述数据库中所有建有索引的列的信息。

user_ind_columns的列

名称类型描述
INDEX_NAMEVARCHAR2(63)索引名
TABLE_OWNERVARCHAR2(63)表的拥有者
TABLE_NAMEVARCHAR2(63)表名
COLUMN_NAMEVARCHAR2(4000)列名
COLUMN_POSITIONSMALLINT索引中的列或属性的位置
COLUMN_LENGTHNUMERIC列的索引长度
CHAR_LENGTHNUMERIC列的最大码点长度
DESCENDVARCHAR2(4)列是否按降序排序(Y/N)

user_indexes

user_indexes视图描述当前用户拥有的所有索引信息。

user_indexes的列

名称类型描述
INDEX_NAMEVARCHAR2(63)索引名
INDEX_TYPEVARCHAR2(27)索引类型
TABLE_OWNERVARCHAR2(63)表的拥有者
TABLE_NAMEVARCHAR2(63)表名
TABLE_TYPETEXT表类型
UNIQUENESSVARCHAR2(9)索引的惟一状态
COMPRESSIONVARCHAR2(8)用于索引的压缩类型
PREFIX_LENGTHNUMERIC压缩键前缀中的列数
TABLESPACE_NAMEVARCHAR2(63)包含索引的表空间的名称
INI_TRANSVARCHAR2(7)初始交易数量
MAX_TRANSVARCHAR2(7)最大交易数量
INITIAL_EXTENTVARCHAR2(7)初始范围的大小
NEXT_EXTENTVARCHAR2(7)辅助扩展区的大小
MIN_EXTENTSVARCHAR2(7)段中允许的最小范围数
MAX_EXTENTSVARCHAR2(7)段中允许的最大范围数
PCT_INCREASEVARCHAR2(7)区大小增加的百分比
PCT_THRESHOLDVARCHAR2(7)每个索引条目允许的块空间百分比阈值
INCLUDE_COLUMNVARCHAR2(7)要包含在按索引组织的表主键(非溢出)索引中的最后一列的列ID
FREELISTSVARCHAR2(7)分配给该段的进程空闲列表数
FREELIST_GROUPSVARCHAR2(7)分配给该段的空闲列表组的数量
PCT_FREEVARCHAR2(7)块中可用空间的最小百分比
LOGGINGVARCHAR2(7)指示是否记录对索引的更改:
BLEVELVARCHAR2(7)b *-树级别(从其根块到其叶块的索引深度)。深度0表示根块和叶块是相同的
LEAF_BLOCKSVARCHAR2(7)索引中的叶块数
DISTINCT_KEYSVARCHAR2(7)不同索引值的数量。对于强制执行的索引UNIQUE和PRIMARY KEY约束,该值与表中的行数相同(*_TABLES.NUM_ROWS)
AVG_LEAF_BLOCKS_PER_KEYVARCHAR2(7)索引中每个不同值出现的叶块数的平均值,四舍五入为最接近的整数。对于强制执行的索引UNIQUE和PRIMARY KEY约束,该值始终为1
AVG_DATA_BLOCKS_PER_KEYVARCHAR2(7)表中由索引中的非重复值指向的平均数据块数,四舍五入为最接近的整数。此统计信息是包含索引列中包含给定值的行的数据块的平均数量
CLUSTERING_FACTORVARCHAR2(7)根据索引值指示表中行的顺序。如果该值接近块数,则该表非常有序。在这种情况下,单个叶块中的索引条目倾向于指向相同数据块中的行;如果该值接近行数,则该表是随机排序的。在这种情况下,同一叶块中的索引条目不太可能指向同一数据块中的行
STATUSVARCHAR2(8)指示非分区索引是否为VALID或者UNUSABLE
NUM_ROWSVARCHAR2(7)索引中的行数。
SAMPLE_SIZEVARCHAR2(7)用于分析指数的样本大小
LAST_ANALYZEDVARCHAR2(20)最近分析此索引的日期
DEGREEVARCHAR2(40)每个实例用于扫描索引的线程数,或者DEFAULT
INSTANCESVARCHAR2(40)要扫描索引的实例数,或者DEFAULT
PARTITIONEDVARCHAR2(3)指示索引是否已分区(YES)还是不(NO)
TEMPORARYVARCHAR2(1)指示索引是否在临时表上(Y)还是不(N)
GENERATEDVARCHAR2(1)指示索引的名称是否是系统生成的(Y)还是不(N)
SECONDARYVARCHAR2(1)指示该索引是否是由ODCIIndexCreateOracle数据盒式磁带的方法(Y)还是不(N)
BUFFER_POOLVARCHAR2(7)用于索引块的缓冲池:
USER_STATSVARCHAR2(3)指示统计信息是否由用户直接输入(YES)还是不(NO)
DURATIONVARCHAR2(15)指示临时表的持续时间:
SYS$SESSION-在会话期间保留行
SYS$TRANSACTION-行在以下时间后被删除COMMIT
PCT_DIRECT_ACCESSVARCHAR2(7)对于索引组织表上的辅助索引,使用 VALID 猜测的行的百分比
ITYP_OWNERVARCHAR2(63)对于域索引,索引类型的所有者
ITYP_NAMEVARCHAR2(63)对于域索引,是索引类型的名称
PARAMETERSVARCHAR2(1000)对于域索引,参数字符串
GLOBAL_STATSVARCHAR2(3)如果收集或增量维护统计信息,则GLOBAL_STATS将为YES,否则将为NO
DOMIDX_STATUSVARCHAR2(12)域索引的状态:
空索引不是域索引
VALID- Index是有效的域索引
IDXTYP_INVLD-域索引的Indextype无效
DOMIDX_OPSTATUSVARCHAR2(6)域索引的操作状态:
空索引不是域索引
VALID-操作执行无误
FAILED-操作失败,出现错误
FUNCIDX_STATUSVARCHAR2(8)基于函数的索引的状态:
空索引不是基于函数的索引
ENABLED-启用基于函数的索引
DISABLED-基于函数的索引被禁用
JOIN_INDEXTEXT指示该索引是否是联接索引(YES)还是不(NO)
IOT_REDUNDANT_PKEY_ELIMTEXT指示是否从按索引组织的表上的辅助索引中删除了冗余的主键列(YES)还是不(NO)
DROPPEDTEXT指示该索引是否已被删除并在回收站中(YES)还是不(NO);分区表为空。该视图不返回已被删除的索引的名称

user_objects

user_objects视图描述当前用户拥有的所有对象。

user_objects的列

名称类型描述
OBJECT_NAMEVARCHAR2(63)对象名
SUBOBJECT_NAMEVARCHAR2(63)子对象的名称
OBJECT_IDNUMERIC(38,0)对象的对象号
DATA_OBJECT_IDNUMERIC(38,0)包含该对象的段的字典对象号
OBJECT_TYPEVARCHAR2(19)对象类型
CREATEDDATE对象创建的时间戳
LAST_DDL_TIMEDATE对象和DDL语句产生的依赖对象的最后修改的时间戳(包括授予和撤销)
TIMESTAMPVARCHAR2(20)对象规范的时间戳(字符数据)
STATUSVARCHAR2(7)对象的状态
TEMPORARYVARCHAR2(1)对象是否是临时的
GENERATEDVARCHAR2(1)是否生成此对象系统的名称
SECONDARYVARCHAR2(1)指示这是否是Oracle Data Cartridge的ODCIIndexCreate方法创建的辅助对象
NAMESPACENUMERIC(38,0)命名空间

user_queues

user_queues视图提供当前用户拥有使用特权的任何队列的信息。

user_queues的列

名称类型描述
nameNAME队列的名称
queue_tableNAME队列所在队列表的名称
qidOID队列的系统分配对象ID
queue_typeCHARACTER VARYING队列类型;当前仅NORMAL_QUEUE
max_retriesINT出队尝试的最大次数(仅兼容)
retrydelayDOUBLE PRECISION两次重试之间允许的最长时间(仅兼容)
enqueue_enabledCHARACTER VARYING如果队列允许入队,则为YES;如果队列不允许入队,则为 NO。
dequeue_enabledCHARACTER VARYING如果队列允许出队,则为YES;如果队列不允许出队,则为 NO。
retentionCHARACTER VARYING已处理的消息保留在队列中的秒数(仅兼容)
user_commentCHARACTER VARYING用户指定的注释
network_nameCHARACTER VARYING(仅兼容)
shardedCHARACTER VARYING(仅兼容)

user_queue_tables

user_queue_tables视图提供当前用户可访问的所有队列表的信息。

user_queue_tables的列

名称类型描述
queue_tableNAME队列表的用户指定名称
typetype CHARACTER VARYING队列表中存储的数据的类型
object_typeTEXT用户定义的有效负载类型
sort_orderCHARACTER VARYING队列表的排序顺序(仅兼容)
recipientsCHARACTER VARYING(仅兼容)
message_groupingCHARACTER VARYING(仅兼容)
compatibleCHARACTER VARYING(仅兼容)
primary_instanceNUMERIC(仅兼容)
secondary_instanceNUMERIC(仅兼容)
owner_instanceNUMERIC(仅兼容)
user_commentCHARACTER VARYING创建表时提供的用户注释
secureCHARACTER VARYING(仅兼容)

user_role_privs

user_role_privs视图描述了授予当前用户的角色。

user_role_privs的列

名称类型描述
USERNAMEVARCHAR2(63)接收授权的用户或角色的名称
GRANTED_ROLEVARCHAR2(63)授予的角色名
ADMIN_OPTIONVARCHAR2(3)指示授予是否带有管理选项(YES)或否(NO)
DEFAULT_ROLEVARCHAR2(3)指示角色是否被指定为用户的默认角色(YES)或否(NO)

user_sequences

user_sequences视图描述当前用户的所有序列的信息。

user_sequences的列

名称类型描述
SEQUENCE_OWNERVARCHAR2(63)序列的拥有者
SEQUENCE_NAMEVARCHAR2(63)序列名
MIN_VALUENUMERIC(38,0)序列的最小值
MAX_VALUENUMERIC(38,0)序列的最大值
INCREMENT_BYNUMERIC(38,0)序列按该值递增
CYCLE_FLAGTEXT指示序列在达到极限(Y)时是否换行(N)
ORDER_FLAGVARCHAR2(1)指示序列号是否按(Y)的顺序生成(N)
CACHE_SIZENUMERIC(38,0)要缓存的序列号的个数
LAST_NUMERICNUMERIC(38,0)最后写入磁盘的序列号。如果序列使用缓存,则写入磁盘的数字是序列缓存中的最后一个数字。这个数字很可能大于所使用的最后一个序列号。对于会话序列,应忽略此列中的值

user_source

user_source视图描述当前用户的所有程序源的信息。

user_source的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
NAMEVARCHAR2(63)对象名
TYPEVARCHAR2(12)对象类型:FUNCTION, JAVA SOURCE, PACKAGE, PACKAGE BODY, PROCEDURE, TRIGGER, TYPE, TYPE BODY
TEXTVARCHAR2(4000)存储对象的文本源

user_synonyms

user_synonyms视图描述数据库中用户所有同义词的信息。

user_synonyms的列

名称类型描述
OWNERVARCHAR2(63)同义词的所有者
SYNONYM_NAMESPACE_NAMEVARCHAR2(63)同义词的命名空间
SYNONYM_NAMEVARCHAR2(63)同义词名
TABLE_OWNERVARCHAR2(63)由同义词引用的对象的所有者
TABLE_NAMESPACE_NAMEVARCHAR2(63)表的命名空间
TABLE_NAMEVARCHAR2(63)由同义词引用的对象的名称
DBLINKTEXT引用的数据库链接的名称(如果有的话)

user_tab_cols

user_tab_cols视图描述当前用户可以访问的表,视图的列。

user_tab_cols的列

名称类型描述
TABLE_NAMEVARCHAR2(63)表、视图的名称
COLUMN_NAMEVARCHAR2(63)列名
DATA_TYPEVARCHAR2(106)列的数据类型
DATA_TYPE_MODVARCHAR2(3)列的数据类型修饰符
DATA_TYPE_OWNERVARCHAR2(63)列的数据类型的所有者
DATA_LENGTHNUMERIC列长度(以字节为单位)
DATA_PRECISIONNUMERIC数字数据类型的十进制精度;浮点型的二进制精度;所有其他数据类型为空
DATA_SCALENUMERIC位数:数字中小数点右边的位数
NULLABLEVARCHAR2(1)指示列是否允许为空。如果列上存在非NULL约束或列是主键的一部分,则该值为N
COLUMN_IDNUMERIC创建的列的序列号
DEFAULT_LENGTHNUMERIC列的默认值的长度
DATA_DEFAULTTEXT列的默认值
NUM_DISTINCTNUMERIC列中不同值的数目
LOW_VALUENUMERIC列中的低值
HIGH_VALUENUMERIC列中的高值
DENSITYNUMERIC如果柱状图在COLUMN_NAME上可用,则此列显示在柱状图中跨越少于2个端点的值的选择性。它不表示跨越2个或多个端点的值的选择性。如果柱状图在COLUMN_NAME上不可用,则该列的值为1/NUM_DISTINCT
NUM_NULLSNUMERIC列中空值的数目
NUM_BUCKETSNUMERIC列的直方图中的桶数。注意:直方图中的桶数是在ANALYZE SQL语句的SIZE参数中指定的。然而,Oracle数据库并没有创建一个比样本行数更多的桶的直方图。此外,如果样本中包含任何重复的值,Oracle数据库会创建指定数量的桶,但由于内部压缩算法的原因,这一列显示的值可能更小
LAST_ANALYZEDTIMESTAMP(0) WITHOUT TIME ZONE这一栏最近分析的日期
SAMPLE_SIZENUMERIC用于分析该列的样本量
CHARACTER_SET_NAMEVARCHAR2(44)字符集名称:CHAR_CS/NCHAR_CS
CHAR_COL_DECL_LENGTHNUMERIC字符类型列的声明长度
GLOBAL_STATSVARCHAR2(3)如果统计信息被收集或增量维护,GLOBAL_STATS将为YES,否则为NO
USER_STATSVARCHAR2(3)指示统计信息是否由用户直接输入(YES)或(NO)
AVG_COL_LENNUMERIC列的平均长度(以字节计)
CHAR_LENGTHNUMERIC以字符为单位显示列的长度。该值仅适用于以下数据类型。
CHAR
VARCHAR2
NCHAR
NVARCHAR2
CHAR_USEDVARCHAR2(1)指示列使用BYTE长度语义(B)或CHAR长度语义(C),或者数据类型不是以下任何一种(NULL)。
CHAR
VARCHAR2
NCHAR
NVARCHAR2
V80_FMT_IMAGEVARCHAR2(3)指示列数据是否为8.0版本图像格式(YES)或否(NO)
DATA_UPGRADEDVARCHAR2(3)指示列数据是否已升级为最新类型版本格式(YES)或(NO)
HIDDEN_COLUMNVARCHAR2(3)指示列是否是隐藏列(YES)或不是(NO)
VIRTUAL_COLUMNVARCHAR2(3)指示列是否是虚拟列(YES)或不是(NO)
SEGMENT_COLUMN_IDNUMERIC段中列的序列号
INTERNAL_COLUMN_IDNUMERIC列的内部序列号
HISTOGRAMVARCHAR2(15)表示直方图的存在/类型。取值如下所示
NONE
FREQUENCY
TOP-FREQUENCY
HEIGHT BALANCED
HYBRID
QUALIFIED_COL_NAMEVARCHAR2(4000)限定的列名

user_tab_columns

user_tab_columns视图描述数据库中所有表列的信息。

user_tab_columns的列

名称类型描述
TABLE_NAMEVARCHAR2(63)表、视图的名称
COLUMN_NAMEVARCHAR2(63)列名
DATA_TYPEVARCHAR2(106)列的数据类型
DATA_TYPE_MODVARCHAR2(3)列的数据类型修饰符
DATA_TYPE_OWNERVARCHAR2(63)列的数据类型的所有者
DATA_LENGTHNUMERIC列长度(以字节为单位)
DATA_PRECISIONNUMERIC数字数据类型的十进制精度;浮点型的二进制精度;所有其他数据类型为空
DATA_SCALENUMERIC位数:数字中小数点右边的位数
NULLABLEVARCHAR2(1)指示列是否允许为空。如果列上存在非NULL约束或列是主键的一部分,则该值为N
COLUMN_IDNUMERIC创建的列的序列号
DEFAULT_LENGTHNUMERIC列的默认值的长度
DATA_DEFAULTTEXT列的默认值
NUM_DISTINCTNUMERIC列中不同值的数目
LOW_VALUENUMERIC列中的低值
HIGH_VALUENUMERIC列中的高值
DENSITYNUMERIC如果柱状图在COLUMN_NAME上可用,则此列显示在柱状图中跨越少于2个端点的值的选择性。它不表示跨越2个或多个端点的值的选择性。如果柱状图在COLUMN_NAME上不可用,则该列的值为1/NUM_DISTINCT
NUM_NULLSNUMERIC列中空值的数目
NUM_BUCKETSNUMERIC列的直方图中的桶数。注意:直方图中的桶数是在ANALYZE SQL语句的SIZE参数中指定的。然而,Oracle数据库并没有创建一个比样本行数更多的桶的直方图。此外,如果样本中包含任何重复的值,Oracle数据库会创建指定数量的桶,但由于内部压缩算法的原因,这一列显示的值可能更小
LAST_ANALYZEDTIMESTAMP(0) WITHOUT TIME ZONE这一栏最近分析的日期
SAMPLE_SIZENUMERIC用于分析该列的样本量
CHARACTER_SET_NAMEVARCHAR2(44)字符集名称:CHAR_CS/NCHAR_CS
CHAR_COL_DECL_LENGTHNUMERIC字符类型列的声明长度
GLOBAL_STATSVARCHAR2(3)如果统计信息被收集或增量维护,GLOBAL_STATS将为YES,否则为NO
USER_STATSVARCHAR2(3)指示统计信息是否由用户直接输入(YES)或(NO)
AVG_COL_LENNUMERIC列的平均长度(以字节计)
CHAR_LENGTHNUMERIC以字符为单位显示列的长度。该值仅适用于以下数据类型。
CHAR
VARCHAR2
NCHAR
NVARCHAR2
CHAR_USEDVARCHAR2(1)指示列使用BYTE长度语义(B)或CHAR长度语义(C),或者数据类型不是以下任何一种(NULL)。
CHAR
VARCHAR2
NCHAR
NVARCHAR2
V80_FMT_IMAGEVARCHAR2(3)指示列数据是否为8.0版本图像格式(YES)或否(NO)
DATA_UPGRADEDVARCHAR2(3)指示列数据是否已升级为最新类型版本格式(YES)或(NO)
HISTOGRAMVARCHAR2(15)表示直方图的存在/类型。取值如下所示。
NONE
FREQUENCY
TOP-FREQUENCY
HEIGHT BALANCED
HYBRID

user_tab_comments

user_tab_comments视图描述当前用户拥有的表和视图上的注释。

user_tab_comments的列

名称类型描述
OWNERVARCHAR2(63)对象的拥有者
TABLE_NAMEVARCHAR2(63)表名
TABLE_TYPEVARCHAR2(11)表类型
COMMENTSVARCHAR2(4000)注释

user_tab_privs

user_tab_privs视图描述当前用户的对象权限,该用户可以是对象的所有者、授予者或者被授予者。

user_tab_privs的列

名称类型描述
GRANTEEVARCHAR2(63)授予访问权的用户或角色的名称
OWNERVARCHAR2(63)对象的所有者
TABLE_NAMEVARCHAR2(63)对象名称
GRANTORVARCHAR2(63)执行授权的用户的名称
PRIVILEGEVARCHAR2(40)对象上的特权
GRANTABLEVARCHAR2(3)指示是否使用
GRANT OPTION
(YES)或否(NO)授予特权

user_tables

user_tables视图描述当前用户的所有表的信息。

user_tables的列

名称类型描述
TABLE_NAMEVARCHAR2(63)表的名称
TABLESPACE_NAMEVARCHAR2(63)包含该表的表空间的名称;对于分区表、临时表和按索引组织的表,为NULL
CLUSTER_NAMEVARCHAR2(63)表所属的集群的名称(如果有)
IOT_NAMEVARCHAR2(63)溢出或映射表条目所属的按索引组织的表(如果有)的名称。如果IOT_TYPE列不为空,则此列包含基表名
STATUSVARCHAR2(63)如果以前的DROP TABLE操作失败,指示表是否不可用(UNUSABLE)或有效(VALID)
PCT_FREEINTEGER块中可用空间的最小百分比;分区表为空
PCT_USEDINTEGER块中已用空间的最小百分比;分区表为空
INI_TRANSINTEGER处理的初始数量;分区表为空
MAX_TRANSINTEGER最大处理数量;分区表为空
INITIAL_EXTENTINTEGER初始范围的大小(以字节为单位);分区表为空
NEXT_EXTENTINTEGER二级区段的大小(以字节为单位);NULL用于分区表
MIN_EXTENTSINTEGER段中允许的最小范围数;分区表为空
MAX_EXTENTSINTEGER段中允许的最大范围数;分区表为空
PCT_INCREASEINTEGER范围大小的增加百分比;分区表为空
FREELISTSINTEGER分配给该段的进程空闲列表数;分区表为空
FREELIST_GROUPSINTEGER分配给该段的空闲列表组的数量;分区表为空
LOGGINGVARCHAR2(3)指示是否记录对表的更改;分区表为空;YES/NO
BACKED_UPVARCHAR2(1)指示自最后一次修改(Y)以来是否备份了表(N)
NUM_ROWSINTEGER表中的行数
BLOCKSINTEGER表中已使用数据块的个数
EMPTY_BLOCKSINTEGER表中空(从未使用过)数据块的数量。只有在使用DBMS_STATS包收集表上的统计信息时,才会填充此列
AVG_SPACEINTEGER分配给表的数据块中的平均可用空间量(以字节为单位)
CHAIN_CNTINTEGER表中从一个数据块链接到另一个数据块或已迁移到新块的行数,需要一个链接来保存旧的ROWID
AVG_ROW_LENINTEGER表中一行的平均长度(以字节为单位)
AVG_SPACE_FREELIST_BLOCKSINTEGER自由列表中所有块的平均空闲空间
NUM_FREELIST_BLOCKSINTEGER自由列表上的块数
DEGREEVARCHAR2(10)每个实例用于扫描表的线程数,或默认值
INSTANCESVARCHAR2(10)要扫描表的实例数,或默认值
CACHEVARCHAR2(5)指示是否将表缓存在缓冲区缓存(Y)中(N)
TABLE_LOCKVARCHAR2(8)表锁定是启用(enabled)还是禁用(disabled)
SAMPLE_SIZEINTEGER用于分析表格的样本量
LAST_ANALYZEDDATE该表最近被分析的日期
PARTITIONEDVARCHAR2(3)指示表是否分区(YES)或未分区(NO)
IOT_TYPEVARCHAR2(12)如果表是索引组织的表,则IOT_TYPE为IOT、IOT_OVERFLOW或IOT_MAPPING。如果表不是索引组织的表,则IOT_TYPE为NULL
TEMPORARYVARCHAR2(1)表是临时的(Y)还是非临时的(N)
SECONDARYVARCHAR2(1)说明表是否为Oracle数据盒(Y)的ODCIIndexCreate方法创建的辅助对象(N)
NESTEDVARCHAR2(3)指示表是嵌套表(是)还是非嵌套表(否)
BUFFER_POOLVARCHAR2(7)表的缓冲池;分区表为空
ROW_MOVEMENTVARCHAR2(8)指示分区行移动是启用(enabled)还是禁用(disabled)
GLOBAL_STATSVARCHAR2(3)如果统计信息被收集或增量维护,GLOBAL_STATS将为YES,否则为NO
USER_STATSVARCHAR2(3)表示统计数据是由用户直接输入的(YES)还是不是(NO)
DURATIONVARCHAR2(15)临时表的持续时间,取值如下所示。
SYS$SESSION - 行在会话期间保留
SYS$TRANSACTION - 行在提交后被删除
Null - 永久表
SKIP_CORRUPTVARCHAR2(8)指示Oracle数据库是否在表和索引扫描期间忽略标记为损坏的块(启用)或引发错误(禁用)。要启用此特性,请运行DBMS_REPAIR。SKIP_CORRUPT_BLOCKS过程
MONITORINGVARCHAR2(3)死元组
CLUSTER_OWNERVARCHAR2(63)表所属集群的所有者(如果有的话)
DEPENDENCIESVARCHAR2(8)指示行级依赖项跟踪是启用(启用)还是禁用(禁用)
COMPRESSIONVARCHAR2(8)表压缩是否启用(启用)或不启用(禁用);对于分区表,为NULL
DROPPEDVARCHAR2(3)指示表是否已被删除,是否在回收站(YES)或(NO);对于分区表,为NULL,此视图不返回已删除的表的名称

user_tablespace

user_tablespace视图描述当前用户可访问的表空间。

user_tablespace的列

名称类型描述
TABLESPACE_NAMEVARCHAR2(63)命名空间名
INITIAL_EXTENTNUMERIC默认的初始区段大小(以字节为单位)
NEXT_EXTENTNUMERIC默认的增量区段大小(以字节为单位)
MIN_EXTENTSNUMERIC默认的最小区段数
MAX_EXTENTSNUMERIC默认的最大区段数
PCT_INCREASENUMERIC区段大小的默认增加百分比
MIN_EXTLENNUMERIC此表空间的最小区段大小(以字节为单位)
STATUSVARCHAR2(9)状态,取值如下所示。
ONLINE
OFFLINE
READ ONLY
CONTENTSVARCHAR2(9)内容:PERMANENT
LOGGINGVARCHAR2(9)默认日志属性
EXTENT_MANAGEMENTVARCHAR2(10)指示表空间中的区段是字典管理的(dictionary)还是本地管理的(LOCAL)
ALLOCATION_TYPEVARCHAR2(9)表空间有效的区段分配类型

user_tablespaces

user_tablespaces视图描述当前用户可访问的表空间。

user_tablespaces的列

名称类型描述
TABLESPACE_NAMEVARCHAR2(63)命名空间名
INITIAL_EXTENTNUMERIC默认的初始区段大小(以字节为单位)
NEXT_EXTENTNUMERIC默认的增量区段大小(以字节为单位)
MIN_EXTENTSNUMERIC默认的最小区段数
MAX_EXTENTSNUMERIC默认的最大区段数
PCT_INCREASENUMERIC区段大小的默认增加百分比
MIN_EXTLENNUMERIC此表空间的最小区段大小(以字节为单位)
STATUSVARCHAR2(9)状态,取值如下所示。
ONLINE
OFFLINE
READ ONLY
CONTENTSVARCHAR2(9)内容:PERMANENT
LOGGINGVARCHAR2(9)默认日志属性
EXTENT_MANAGEMENTVARCHAR2(10)指示表空间中的区段是字典管理的(dictionary)还是本地管理的(LOCAL)
ALLOCATION_TYPEVARCHAR2(9)表空间有效的区段分配类型

user_trigger_cols

user_trigger_cols视图描述当前用户用的所有触发器的列信息。

user_trigger_cols的列

名称类型描述
TRIGGER_OWNERVARCHAR2(63)触发器的拥有者
TRIGGER_NAMEVARCHAR2(63)触发器名
TABLE_OWNERVARCHAR2(63)表的拥有者
TABLE_NAMEVARCHAR2(63)表名
COLUMN_NAMEVARCHAR2(4000)列名

user_triggers

user_triggers视图描述当前用户的所有触发器的信息。

user_triggers的列

名称类型描述
TRIGGER_NAMEVARCHAR2(63)触发器名
TRIGGER_TYPEVARCHAR2(16)触发器类型
TRIGGERING_EVENTVARCHAR2(216)触发触发器的DML、DDL或数据库事件
TABLE_OWNERVARCHAR2(63)表的拥有者
TABLE_NAMEVARCHAR2(63)表名
BASE_OBJECT_TYPEVARCHAR2(16)定义触发器的基对象,取值如下所示
TABLE
VIEW
SCHEMA
DATABASE
COLUMN_NAMEVARCHAR2(4000)列名
REFERENCING_NAMESVARCHAR2(422)用于从触发器中引用OLD和NEW列值的名称
DESCRIPTIONVARCHAR2(4000)触发描述;用于重新创建触发器创建语句
STATUSVARCHAR2(8)指示触发器是启用(enabled)还是禁用(disabled);禁用的触发器不会触发
TRIGGER_BODYTEXT触发器触发时执行的语句
WHEN_CLAUSETEXT触发器触发条件
ACTION_TYPEVARCHAR2(4)触发器体的动作类型(仅支持CALL)

user_users

user_users视图描述当前用户。

user_users的列

名称类型描述
USERNAMEVARCHAR2(63)用户名
USER_IDNUMERIC(38,0)用户id
ACCOUNT_STATUSVARCHAR2(32)状态,取值如下所示
OPEN
EXPIRED
LOCK_DATEDATE当用户状态为锁定时,用户被锁定的日期
EXPIRY_DATEDATE用户的到期日期
DEFAULT_TABLESPACEVARCHAR2(63)默认数据表空间
TEMPORARY_TABLESPACEVARCHAR2(63)临时表的默认表空间名称或表空间组名称
CREATEDDATE用户创建的时间
INITIAL_RSRC_CONSUMER_GROUPVARCHAR2(63)用户的初始资源消费组
EXTERNAL_NAMEVARCHAR2(63)用户外部名称。对于集中管理的用户,如果数据库用户映射是一个独占映射,那么这将是用户的目录服务DN。如果这个数据库用户是一个共享模式,它将是一个组的DN

user_views

user_views视图描述当前用户的所有视图的信息。

user_views的列

名称类型描述
VIEW_NAMEVARCHAR2(63)视图名
TEXT_LENGTHNUMERIC视图文本的长度
TEXTTEXT查看文本。只有当行起源于当前容器时,此列才返回正确的值。在此视图中,BEQUEATH子句不会作为TEXT列的一部分出现
TYPE_TEXT_LENGTHNUMERIC视图的类型子句的长度
TYPE_TEXTVARCHAR2(4000)视图的类型子句
OID_TEXT_LENGTHNUMERIC视图的WITH OID子句的长度
OID_TEXTVARCHAR2(4000)视图的WITH OID子句
VIEW_TYPE_OWNERVARCHAR2(63)如果视图是类型化视图,则为视图类型的所有者
VIEW_TYPEVARCHAR2(63)如果视图是类型化视图,则为视图的类型
SUPERVIEW_NAMEVARCHAR2(63)父视图的名称
EDITIONING_VIEWVARCHAR2(1)保留供将来使用
READ_ONLYVARCHAR2(1)指示视图是否只读(Y) (N)

V$DATABASE

V$DATABASE视图描述当前数据库信息。

V$DATABASE的列

名称类型描述
DBIDNUMERIC(38,0)在创建数据库并存储在所有文件头中时计算的数据库标识符
NAMEVARCHAR2(63)数据库名
CREATEDDATE数据库的创建日期。如果使用CREATE CONTROLFILE语句重新创建了控件文件,那么此列将显示重新创建控件文件的日期
LOG_MODEVARCHAR2(12)存档日志模式,取值如下所示
NOARCHIVELOG
ARCHIVELOG
CHECKPOINT_CHANGENUMERIC最后一个SCN检查点
CONTROLFILE_TIMEDATE备份控制文件中的最后时间戳;如果控制文件不是备份,则为空
OPEN_MODEVARCHAR2(10)打开模式信息:READ WRITE
ARCHIVELOG_CHANGENUMERIC存档日志的最高NEXT_CHANGE#(来自V$ARCHIVED_LOG视图)
CURRENT_SCNNUMERIC当前的视交叉上核;如果数据库当前未打开,则为空。对于一个备用数据库,它是在媒体恢复期间挂载的物理备用数据库的检查点SCN,总是小于V$RECOVERY_PROGRESS中跟踪的最后一个应用SCN
MAX_SIZENUMERIC(38,0)最大值
TOTAL_SIZENUMERIC(38,0)总值
STATUS$VARCHAR2(10)状态

V$INSTANCE

V$INSTANCE视图描述当前实例信息。

V$INSTANCE的列

名称类型描述
INSTANCE_NAMEVARCHAR2(16)用于实例注册的实例号(对应于INSTANCE_NUMBER初始化参数)
HOST_NAMEVARCHAR2(64)主机的名称
VERSIONVARCHAR2(17)数据库版本号
STARTUP_TIMEDATE实例启动的时间
STATUSVARCHAR2(12)实例的STARTED状态
ARCHIVERVARCHAR2(7)自动归档状态“STOPPED”
LOGINVARCHAR2(10)指示实例是否处于无限制模式(允许所有用户登录)(允许,还是处于受限模式(只允许数据库管理员登录)(restricted)
SHUTDOWN_PENDINGVARCHAR2(3)指示关闭是否挂起(YES)或(NO)
DATABASE_STATUSVARCHAR2(17)数据库的“ONLINE”状态
INSTANCE_ROLEVARCHAR2(18)指示实例是活动的实例(PRIMARY_INSTANCE)还是不活动的辅助实例(SECONDARY_INSTANCE),如果实例已启动但未挂载,则指示该实例是未知的
ACTIVE_STATEVARCHAR2(9)实例的静默状态:NORMAL
BLOCKEDVARCHAR2(3)指示是否阻塞所有服务(YES)或(NO)

V$LOCK

V$LOCK视图列出数据库当前持有的锁以及对锁的未完成请求。

V$LOCK的列

名称类型描述
ADDRVARCHAR2(16)锁状态对象的地址
KADDRVARCHAR2(16)锁的地址
SIDNUMERIC会话持有或获取锁的标识符
TYPEVARCHAR2(2)用户或系统锁的类型,TM/TX/UL等
LMODENUMERIC会话持有锁的锁模式,取值如下所示
0 - none
1 - null (NULL)
2 - row-S (SS)
3 - row-X (SX)
4 - share (S)
5 - S/Row-X (SSX)
6 - exclusive (X)
REQUESTNUMERIC进程请求锁的锁模式,取值如下所示
0 - none
1 - null (NULL)
2 - row-S (SS)
3 - row-X (SX)
4 - share (S)
5 - S/Row-X (SSX)
6 - exclusive (X)
CTIMENUMERIC自授予当前模式以来的时间
BLOCKNUMERIC指示有问题的锁是否正在阻塞其他进程。取值如下所示
0 -锁没有阻塞任何其他进程
1 -锁正在阻塞其他进程
2 -锁没有阻塞本地节点上任何被阻塞的进程,但可能会阻塞远程节点上的进程,也可能不会阻塞。该值只在Oracle RAC (Real Application Clusters, Oracle RAC)配置中使用(不用于单实例配置)

V$LOCKED_OBJECT

V$LOCKED_OBJECT视图描述当前被锁定的对象。

V$LOCKED_OBJECT的列

名称类型描述
XIDUSNNUMERICUndo号
XIDSLOTNUMERIC槽数
XIDSQNNUMERIC序列号
OBJECT_IDNUMERIC对象ID被锁定
SESSION_IDNUMERIC会话ID
ORACLE_USERNAMEVARCHAR2(63)用户名
OS_USER_NAMEVARCHAR2(63)操作系统用户名
PROCESSVARCHAR2(63)操作系统进程ID
LOCKED_MODENUMERIC锁定模式。这一列的数值映射到表锁的锁定模式的文本值:
0 - NONE:请求但尚未获得锁
1 - 空
2 - ROWS_S (SS):行共享锁
3 - ROW_X (SX):行独占表锁
4 - SHARE (S):共享表锁定
5 - S/ Row - x (SSX):共享行独占表锁
6 - 排他(X):排他表锁

V$PARAMETER

V$PARAMETER视图列出影响当前会话的初始化参数信息。

V$PARAMETER的列

名称类型描述
NUMNUMERIC参数数量
NAMEVARCHAR2(80)参数名
TYPENUMERIC参数类型,如下所示
1 - Boolean
2 - String
3 - Integer
4 - Parameter file
5 - Reserved
6 - Big integer
VALUEVARCHAR2(512)会话的参数值(如果在会话中修改);否则为实例范围的参数值
DISPLAY_VALUEVARCHAR2(512)用户友好的格式。例如,如果VALUE列显示一个大整数参数的值262144,那么DISPLAY_VALUE列将显示值256K
ISSES_MODIFIABLEVARCHAR2(5)指示是否可以使用
ALTER SESSION
(TRUE)更改参数(FALSE)
ISPG_MODIFIALBEVARCHAR2(9)指示是否可以在PDB内部修改参数(TRUE) (FALSE)
ISMODIFIEDVARCHAR2(10)指示该参数在实例启动后是否被修改
MODIFIED -参数已被
ALTER SESSION
修改
SYSTEM_MOD—使用
ALTER SYSTEM
修改了参数(这会导致当前登录的所有会话的值都被修改)
FALSE -实例启动后参数未被修改
DESCRIPTIONVARCHAR2(255)参数说明

V$SESSION

V$SESSION视图描述当前会话信息。

V$SESSION的列

名称类型描述
SADDRVARCHAR2(20)会话地址
SIDNUMERIC会话标识符
SERIAL#NUMERIC会话序列号。用于唯一标识会话的对象。确保在会话结束而另一个会话开始时使用相同的会话ID时,将会话级别的命令应用到正确的会话对象
AUDSIDNUMERIC审计会话ID 如果数据库配置为统一审计,则此列显示统一审计会话ID 如果将数据库配置为混合模式审计,那么此列将显示传统的审计会话ID
PADDRVARCHAR2(20)拥有会话的进程的地址
USER#NUMERIC(38,0)用户标识符
USERNAMEVARCHAR2(63)用户名
COMMANDNUMERIC命令正在执行(最后一条语句已解析)。该COMMAND列的值为0表示该命令没有记录在V$SESSION中
OWNERIDNUMERIC拥有可迁移会话的用户标识符;如果该值为2147483644,则列内容无效;对于使用Parallel slave的操作,将此值解释为一个4字节的值。低阶2字节表示会话号,高阶字节表示查询协调器的实例ID
TADDRVARCHAR2(20)事务状态对象的地址
LOCKWAITVARCHAR2(8)会话正在等待的锁的地址;如果没有则为NULL
STATUSVARCHAR2(8)会话状态,取值如下所示
ACTIVE -当前执行SQL的会话
INACTIVE — 未激活的会话,没有配置的限制或尚未超过配置的限制
KILLED - 被标记为被终止的会话
CACHED - Oracle*XA使用的临时缓存会话
SNIPED -个已超过某些配置限制(例如,为资源管理器消费组指定的资源限制或在用户配置文件中指定的idle_time)的非活动会话。这样的会话将不被允许再次激活
SERVERVARCHAR2(9)服务器类型,取值如下所示
DEDICATED
SHARED
PSEUDO
POOLED
NONE
SCHEMA#NUMERIC(38,0)模式用户标识符
SCHEMANAMEVARCHAR2(63)模式用户名
OSUSERVARCHAR2(63)操作系统客户端用户名
PROCESSVARCHAR2(12)操作系统客户端进程ID
MACHINEVARCHAR2(64)操作系统机器名称
TERMINALVARCHAR2(63)操作系统终端名称
PROGRAMVARCHAR2(48)操作系统程序名称
TYPEVARCHAR2(10)会话类型
SQL_ADDRESSVARCHAR2(20)与SQL_HASH_VALUE一起使用,以标识当前正在执行的SQL语句
SQL_HASH_VALUENUMERIC与SQL_ADDRESS一起使用,标识当前正在执行的SQL语句
SQL_IDVARCHAR2(13)当前正在执行的SQL语句的SQL标识符
SQL_CHILD_NUMBERNUMERIC当前正在执行的SQL语句的子编号
PREV_SQL_ADDRVARCHAR2(20)与PREV_HASH_VALUE一起使用,以标识最后执行的SQL语句
PREV_HASH_VALUENUMERIC与SQL_HASH_VALUE一起使用,标识最后执行的SQL语句
PREV_SQL_IDVARCHAR2(13)最后执行的SQL语句的SQL标识符
PREV_CHILD_NUMBERNUMERIC最后执行的SQL语句的子编号
MODULEVARCHAR2(48)通过调用DBMS_APPLICATION_INFO设置的当前执行模块的名称。SET_MODULE过程
MODULE_HASHNUMERICMODULE列的哈希值
ACTIONVARCHAR2(32)通过调用DBMS_APPLICATION_INFO设置的当前执行操作的名称。SET_ACTION过程
ACTION_HASHNUMERICACTION列的哈希值
CLIENT_INFOVARCHAR2(64)由DBMS_APPLICATION_INFO. conf设置的信息。SET_CLIENT_INFO过程
FIXED_TABLE_SEQUENCENUMERIC它包含一个数字,每次会话完成对数据库的调用,并且从动态性能表进行中间选择时,该数字都会增加。性能监视器可使用此列监视数据库中的统计信息。每次性能监控器查看数据库时,它只需要查看当前活动的会话或此列中的值高于性能监控器上次看到的最大值的会话。自性能监控器最后一次查看数据库以来,所有其他会话都处于空闲状态
ROW_WAIT_OBJ#NUMERIC包含row_wait_row#中指定的行的表的对象ID
ROW_WAIT_FILE#NUMERIC包含row_wait_row#中指定的行的数据文件的标识符。只有当会话当前正在等待另一个事务提交且row_wait_obj#的值不是-1时,此列才有效
ROW_WAIT_BLOCK#NUMERIC包含row_wait_row#中指定的行的块的标识符。只有当会话当前正在等待另一个事务提交且row_wait_obj#的值不是-1时,此列才有效
ROW_WAIT_ROW#NUMERIC当前行被锁定。只有当会话当前正在等待另一个事务提交且row_wait_obj#的值不是-1时,此列才有效
LOGON_TIMEDATE登录时间
LAST_CALL_ETNUMERIC如果会话STATUS当前为ACTIVE,则该值表示自会话变为活动状态以来经过的时间(以秒为单位)。如果会话STATUS当前为INACTIVE,则该值表示自会话变为非激活状态以来经过的时间(以秒为单位)
PDML_ENABLEDVARCHAR2(3)此列已被PDML_STATUS列取代
FAILOVER_TYPEVARCHAR2(13)指示是否以及在多大程度上为会话启用透明应用程序故障转移(TAF),取值如下所示
NONE -此会话禁用故障转移
SESSION - 客户端可以在断开连接后对其会话进行故障转移
SELECT - 客户端也可以对正在进行的查询进行故障转移
FAILOVER_METHODVARCHAR2(10)指示会话的透明应用程序故障转移方法,取值如下所示
NONE - 此会话禁用故障转移
BASIC - 客户端本身在断开连接后重新连接
PRECONNECT - 备份实例可以支持来自它所备份的每个实例的所有连接
FAILED_OVERVARCHAR2(3)指示会话是否以故障转移模式运行,是否发生了故障转移(YES) (NO)
RESOURCE_CONSUMER_GROUPVARCHAR2(32)会话的当前资源使用者组的名称
PDML_STATUSVARCHAR2(8)如果ENABLED,则会话处于PARALLEL DML启用模式。如果DISABLED,则会话不支持PARALLEL DML启用模式。如果FORCED,则会话已更改为强制PARALLEL DML
PDDL_STATUSVARCHAR2(8)如果ENABLED,会话处于PARALLEL DDL启用模式。如果DISABLED,则会话不支持PARALLEL DDL启用模式。如果FORCED,则会话已被更改为强制PARALLEL DDL
PQ_STATUSVARCHAR2(8)如果ENABLED,会话处于PARALLEL QUERY启用模式。如果DISABLED,则会话不支持PARALLEL QUERY启用模式。如果FORCED,则会话已被更改为强制PARALLEL QUERY
CURRENT_QUEUE_DURATIONNUMERIC如果排队(1),则表示当前会话已排队的时间。如果当前没有排队,则该值为0
CLIENT_IDENTIFIERVARCHAR2(64)会话的客户端标识符
BLOCKING_SESSION_STATUSVARCHAR2(11)这一列提供了关于是否存在阻塞会话的详细信息,取值如下所示
VALID - 有一个阻塞会话,它在BLOCKING_INSTANCE和BLOCKING_SESSION列中标识
NO HOLDER - 没有会话阻塞这个会话
NOT IN WAIT - 此会话不在等待状态
UNKNOWN - 阻塞会话未知
BLOCKING_INSTANCENUMERIC阻塞会话的实例标识符。只有BLOCKING_SESSION_STATUS的值为valid时,此列才有效
BLOCKING_SESSIONNUMERIC阻断会话的会话标识。只有BLOCKING_SESSION_STATUS的值为valid时,此列才有效
SEQ#NUMERIC唯一标识当前或最后一次等待的数字(每次等待递增)
EVENT#NUMERIC如果会话当前正在等待,则表示会话正在等待的资源或事件的编号。如果会话不在等待中,则为会话最近等待的资源或事件的编号
EVENTVARCHAR2(64)如果会话当前正在等待,则会话正在等待的资源或事件。如果会话不在等待中,则会话最近等待的资源或事件
P1TEXTVARCHAR2(64)第一个等待事件参数的描述
P1NUMERIC第一个等待事件参数(十进制)
P1RAWVARCHAR2(20)第一个等待事件参数(十六进制) P1RAW列显示的值与P1列相同,只是数字以十六进制形式显示
P2TEXTVARCHAR2(64)第二个等待事件参数的描述
P2NUMERIC第二个等待事件参数(十进制)
P2RAWVARCHAR2(20)第二个等待事件参数(十六进制),P2RAW列显示的值与P2列相同,只是数字以十六进制形式显示
P3TEXTVARCHAR2(64)第三个等待事件参数的描述
P3NUMERIC第三个等待事件参数(十进制)
P3RAWVARCHAR2(20)第三个等待事件参数(十六进制) “P3RAW”列显示的值与“P3”列相同,不同之处在于数值以十六进制形式显示
WAIT_CLASS_IDNUMERIC等待事件类的标识符
WAIT_CLASS#NUMERIC等待事件的类的编号
WAIT_CLASSVARCHAR2(64)等待事件的类的名称
WAIT_TIMENUMERIC如果会话当前处于等待状态,则该值为0。如果会话没有处于等待状态,则取值如下所示
> 0 - 值是最后一次等待的持续时间,以百分之一秒为单位
-1 - 最后一次等待的持续时间小于百分之一秒
-2 - 参数TIMED_STATISTICS设置为false
该列已被弃用,取而代之的是WAIT_TIME_MICRO和STATE列
SECONDS_IN_WAITNUMERIC如果会话当前正在等待,则该值为当前等待的等待时间。如果会话没有处于等待状态,则该值是自上次等待开始以来的时间。 该列已被弃用,取而代之的是WAIT_TIME_MICRO和TIME_SINCE_LAST_WAIT_MICRO
STATEVARCHAR2(19)等待状态,取值如下所示
WAITING - 会话当前正在等待
waiting UNKNOWN TIME - 最后一次等待的持续时间未知;这是参数TIMED_STATISTICS设置为false时的值
WAITED SHORT TIME - 上次等待不到百分之一秒
waiting KNOWN TIME -最后一次等待的时间在WAIT_TIME列中指定
SERVICE_NAMENUMERIC会话的服务名称
SQL_TRACEVARCHAR2(8)指示SQL跟踪是启用(enabled)还是禁用(disabled)
SQL_TRACE_WAITSVARCHAR2(5)指示是否启用等待跟踪(TRUE)或不启用(FALSE)
SQL_TRACE_BINDSVARCHAR2(5)指示是否启用绑定跟踪(TRUE)或不启用(FALSE)

V$SYSSTAT

V$SYSSTAT视图描述当前系统统计信息。

V$SYSSTAT的列

名称类型描述
STATISTIC#NUMBER统计数字,注意:统计数字不能保证从一个版本到另一个版本保持不变。因此,在您的应用程序中,您应该依赖统计名称而不是统计数字
NAMEVARCHAR2(63)统计的名字。你可以通过查询V$STATNAME视图得到一个完整的统计名称列表
VALUENUMBER统计值

4.数据目录

在做任何事情之前,必须先初始化磁盘上的数据存储区,叫作数据库集群。一个数据库集群是一系列数据库的集合,这些数据库可以通过单个数据库服务器的实例管理。在初始化后,一个数据库集群将包含一个叫uxdb的数据库,这个库是给工具、用户和第三方程序使用的缺省数据库。数据库服务器本身并不要求uxdb数据库的存在,但是很多外部工具假设它存在。另外一个在每个集群初始化过程中创建的数据库叫template1。正如其名一样,这个数据库将作为随后创建的数据库的模版;在实际工作中不应该使用这个库。用文件系统的术语来说,一个数据库集群是一个目录,所有数据都将存放在这个目录中,称做数据目录或数据区。数据存放在哪里完全取决于用户的选择,没有缺省值。初始化一个数据库集群,可以使用initdb命令,这个命令与UXDB一起安装。UXDB的数据目录可以用-D 选项指定为本地目录,也可以通过-Z选项指定为分布式文件系统中的目录。数据库集群所需要的配置和数据文件都存储在集群的数据目录里,该数据目录通常记录在环境变量UXDATA中。

UXDATA目录包含几个子目录以及一些控制文件, 如下表所示。除了这些必要的东西之外,集群的配置文件uxsinodb.conf、ux_hba.conf和ux_ident.conf通常都存储在UXDATA中,不过可以把它们放在其他位置。

表 UXDATA的内容

描述
UX_VERSION一个包含
UXDB
主版本号的文件
base包含每个数据库对应的子目录的子目录
current_logfiles记录日志记录收集器当前写入的日志文件
global包含集群范围的表的子目录,比如
ux_database
ux_commit_ts包含事务提交时间戳数据的子目录
ux_dynshmem包含被动态共享内存子系统所使用的文件的子目录
ux_logical包含用于逻辑复制的状态数据的子目录
ux_multixact包含多事务(multi-transaction)状态数据的子目录(用于共享的行锁)
ux_notify包含LISTEN/NOTIFY状态数据的子目录
ux_replslot包含复制槽数据的子目录
ux_serial包含已提交的可序列化事务信息的子目录
ux_snapshots包含导出的快照的子目录
ux_stat包含用于统计子系统的永久文件的子目录
ux_stat_tmp包含用于统计信息子系统的临时文件的子目录
ux_subtrans包含子事务状态数据的子目录
ux_tblspc包含指向表空间的符号链接的子目录
ux_twophase包含用于预备事务状态文件的子目录
ux_wal包含 WAL (预写日志)文件的子目录
ux_xact包含事务提交状态数据的子目录
uxsinodb.auto.conf一个用于存储由
ALTER SYSTEM
设置的配置参数的文件
uxmaster.opts一个记录服务器最后一次启动时使用的命令行参数的文件
uxmaster.pid一个锁文件,记录着当前的 uxmaster 进程ID(PID)、集群数据目录路径、uxmaster启动时间戳、端口号、Unix域套接字目录路径(Windows上为空)、第一个可用的listen_address(IP地址或者
*
,或者为空表示不在TCP上监听)以及共享内存段ID(服务器关闭后该文件不存在)

5.日志文件

5.1.ux_log

ux_log是数据库活动日志。在$UXDATA/uxsinodb.conf中可以对日志进行相应的修改。下面介绍常用的日志配置。

表 ux_log常用日志配置

参数默认值描述
logging_collectoron是否将日志重定向至文件中,DB启动过程中会将日志重定向$UXDATA/ux_log中。该配置修改后,需要重启DB服务
log_directoryUXDATA的相对路径,即$UXDATA/ux_log日志文件目录,可以修改为绝对路径。例如将此配置修改为/var/log/ux_log下,必须先创建此目录,并修改权限。
log_filenameUXDB-%Y-%m-%d_%H%M%S.log日志文件命名形式,使用默认即可。
log_rotation_age1d单个日志文件的生存期,默认1天,在日志文件大小没有达到log_rotation_size时,一天只生成一个日志文件。
log_rotation_size10MB单个日志文件的大小,如果时间没有超过log_rotation_age,一个日志文件最大只能到10M,否则将新生成一个日志文件。
log_truncate_on_rotationoff当日志文件已存在时,该配置如果为off,新生成的日志将在文件尾部追加,如果为on,则会覆盖原来的日志。
log_lock_waitsoff控制当一个会话等待时间超过deadlock_timeout而被锁时是否产生一个日志信息。在判断一个锁等待是否会影响性能时是有用的。
log_statementnone控制记录哪些SQL语句。
none:不记录;
ddl:记录所有数据定义命令,比如
CREATE

ALTER

DROP
语句;
mod:记录所有ddl语句,加上数据修改语句
INSERT

UPDATE
等;
all:记录所有执行的语句,跟踪整个数据库执行的SQL语句。
log_durationoff记录每条SQL语句执行完成消耗的时间,将此配置设置为on,用于统计哪些SQL语句耗时较长。
log_min_duration_statement-1-1:不可用;0:将记录所有SQL语句和它们的耗时;>0:只记录那些耗时超过(或等于)这个值(ms)的SQL语句。适用于跟踪耗时较长,可能存在性能问题的SQL语句。使用log_statement和log_duration也能够统计SQL语句及耗时,但是SQL语句和耗时统计结果可能相差很多行,或在不同的文件中,但是log_min_duration_statement会将SQL语句和耗时在同一行记录,更方便阅读。
log_connectionsoff是否记录连接日志。
log_disconnectionsoff是否记录连接断开日志。
log_line_prefix%m %p %u %d %r日志输出格式。配置文件解释%m,%p的实际意义。能够记录时间,用户名称,数据库名称,客户端IP和端口,方便定位问题。
log_timezoneAsia/Shanghai日志时区,最好和服务器设置同一个时区,方便问题定位。

5.2.ux_xlog

ux_xlog记录UXDB的WAL信息,也就是事务日志信息,默认单个大小是16M。这些信息通常记录在名称类似'000000010000000000000013'这样的文件中,这些日志会在定时回滚恢复(PITR),流复制(Replication Stream)以及归档时被用到。这些日志是非常重要的,记录着数据库发生的各种事务信息,不得随意删除或者移动这类日志文件,否则数据库会有无法恢复的风险。当归档或者流复制发生异常时,事务日志会不断地生成,有可能会造成磁盘空间被塞满,最终导致UXDB挂掉或者无法正常启动。遇到这种情况,可以先关闭归档或者流复制功能;备份ux_xlog日志到其他路径,但不要删除;删除较早时间的的ux_xlog,有一定空间后再试着启动UXDB。

5.2.1.设置

wal_level (enum)

wal_level决定多少信息写入到 WAL 中。默认值是replica,它写入足够的数据以支持WAL归档和复制,包括在备用服务器上运行只读查询。minimal删除除了从崩溃或立即关闭中恢复所需的信息之外的所有日志记录。最后,logical会增加支持逻辑解码所需的信息。每个层次包括所有更低层次记录的信息。这个参数只能在服务器启动时设置。

在minimal级别中,某些批量操作的 WAL 日志可以被安全地跳过,这可以使那些操作更快。这种优化可以应用的操作包括:

CREATE TABLE AS
CREATE INDEX
CLUSTER
COPY 到在同一个事务中被创建或清空的表中

但最少的 WAL 不会包括足够的信息来从基础备份和 WAL 日志中重建数据,因此,要启用 WAL 归档archive_mode和流复制,必须使用replica或更高级别。

在logical层,与replica相同的信息会被记录,外加上允许从 WAL 抽取逻辑修改集所需的信息。使用级别logical将增加 WAL 容量,特别是如果为了REPLICA IDENTITY FULL配置了很多表并且执行了很多UPDATEDELETE语句时。

此参数还允许值archive和hot_standby。这些仍然被接受,但映射到replica。

fsync (boolean)

如果打开这个参数,UXDB服务器将尝试确保更新被物理地写入到磁盘,做法是发出fsync()系统调用或者使用多种等价的方法(见wal_sync_method)。这保证了数据库集群在一次操作系统或者硬件崩溃后能恢复到一个一致的状态。

虽然关闭fsync常常可以得到性能上的收益,但当发生断电或系统崩溃时可能造成不可恢复的数据损坏。因此,只有在能很容易地从外部数据中重建整个数据库时才建议关闭fsync。

能安全关闭fsync的环境的例子包括从一个备份文件中初始加载一个新数据库集群、使用一个数据库集群来在数据库被删掉并重建之后处理一批数据,或者一个被经常重建并却不用于失效备援的只读数据库克隆。单独的高质量硬件不足以成为关闭fsync的理由。

当把fsync从关闭改成打开时,为了可靠的恢复,需要强制在内核中的所有被修改的缓冲区进入持久化存储。这可以在多个时机来完成:在集群被关闭时或在fsync因为运行initdb --sync-only而打开时、运行sync时、卸载文件系统时或者重启服务器时。

在很多情况下,为不重要的事务关闭synchronous_commit可以提供很多关闭fsync的潜在性能收益,并不会有的同时, 关闭fsync可以提供很多潜在的性能优势,而不会有伴随着的数据损坏风险。

fsync只能在uxsinodb.conf文件中或在服务器命令行上设置。如果关闭这个参数,请也考虑关闭full_page_writes

synchronous_commit (enum)

指定在命令返回“success”指示给客户端之前,一个事务是否需要等待 WAL 记录被写入磁盘。合法的值是on、remote_apply、remote_write、local和off。默认的并且安全的设置是on。当设置为off时,在向客户端报告成功和真正保证事务不会被服务器崩溃威胁之间会有延迟(最大的延迟是wal_writer_delay的三倍)。不同于fsync,将这个参数设置为off不会产生数据库不一致性的风险:一个操作系统或数据库崩溃可能会造成一些最近据说已提交的事务丢失,但数据库状态是一致的,就像这些事务已经被中止。因此,当性能比完全确保事务的持久性更重要时,关闭synchronous_commit可以作为一个有效的代替手段。

如果synchronous_standby_names为非空,这个参数也控制事务提交是否将等待事务的 WAL 记录被复制到后备服务器上。当这个参数被设置为on时,直到来自于当前同步的后备服务器的回复指示该后备服务器已经收到了事务的提交记录并将其刷入了磁盘,主服务器上的事务才会提交。这保证事务将不会被丢失,除非主服务器和后备服务器都遭受到了数据库存储损坏的问题。 当设置为remote_apply时,提交将等待, 直到来自当前同步备用数据库的回复表明它们已收到事务的提交记录并应用该事务, 以便它对备用数据库上的查询可见。 当这个参数被设置为remote_write时,提交将等待,直到来自当前同步的后备服务器的回复指示该服务器已经收到了该事务的提交记录并且已经把该记录写出到后备服务器的操作系统,这种设置足以保证数据在后备服务器的UXDB实例崩溃时得以保存,但是不能保证后备服务器遭受操作系统级别崩溃时数据能被保存,因为数据不一定必须要在后备机上达到稳定存储。最后,设置local会导致提交等待本地刷写到磁盘而不是复制完成。使用同步复制时通常不能达到想要的效果,但是为了完整性,仍然提供了该选项。

如果synchronous_standby_names为空,设置on、remote_apply、remote_write和local都提供了同样的同步级别:事务提交只等待本地刷写磁盘。

这个参数可以随时被修改;任何一个事务的行为由其提交时生效的设置决定。因此,可以同步提交一些事务,同时异步提交其他事务。例如,当默认是相反时,实现一个单一多语句事务的异步提交,在事务中发出SET LOCAL synchronous_commit TO OFF

wal_sync_method (enum)

用来向强制 WAL 更新到磁盘的方法。如果fsync是关闭的,那么这个设置就不相关,因为 WAL 文件更新将根本不会被强制。可能的值是:

  • open_datasync(用open()选项O_DSYNC写 WAL 文件)

  • fdatasync(在每次提交时调用fdatasync())

  • fsync(在每次提交时调用fsync())

  • fsync_writethrough(在每次提交时调用fsync(),强制任何磁盘写高速缓存的直通写)

  • open_sync(用open()选项O_SYNC写 WAL 文件)

open_* 选项也可以使用O_DIRECT(如果可用)。不是在所有平台上都能使用所有这些选择。默认值是列表中第一个被平台支持的那个,不过fdatasync是 Linux 中的默认值。默认值不一定是最理想的;有可能需要修改这个设置或系统配置的其他方面来创建一个崩溃-安全的配置,或达到最佳性能。这个参数只能在uxsinodb.conf文件中或在服务器命令行上设置。

full_page_writes (boolean)

当这个参数为打开时,UXDB服务器在一个检查点之后的页面的第一次修改期间将每个页面的全部内容写到 WAL 中。这么做是因为在操作系统崩溃期间正在处理的一次页写入可能只有部分完成,从而导致在一个磁盘页面中混合有新旧数据。在崩溃后的恢复期间,通常存储在WAL中的行级改变数据不足以完全恢复这样一个页面。存储完整的页面映像可以保证页面被正确存储,但代价是增加了必须被写入WAL的数据量(因为WAL重放总是从一个检查点开始,所以在检查点后每个页面的第一次改变时这样做就够了。因此,一种减小全页面写开销的方法是增加检查点间隔参数值)。

把这个参数关闭会加快正常操作,但是在系统失败后可能导致不可恢复的数据损坏,或者静默的数据损坏。其风险类似于关闭fsync, 但是风险较小。并且只有在可关闭fsync的情况下才应该关闭它。

关闭这个选项并不影响用于时间点恢复(PITR)的WAL归档使用。

这个参数只能在uxsinodb.conf文件中或在服务器命令行上设置。默认值是on。

wal_log_hints (boolean)

当这个参数为on时,UXDB服务器一个检查点之后页面被第一次修改期间把该磁盘页面的整个内容都写入 WAL,即使对所谓的提示位做非关键修改也会这样做。

如果启用了数据校验和,提示位更新总是会被 WAL 记录并且这个设置会被忽略。你可以使用这个 设置测试如果你的数据库启用了数据校验和,会有多少额外的 WAL 记录发生。

这个参数只能在服务器启动时设置。默认值是off。

wal_compression (boolean)

当这个参数为on,如果full_page_writes为打开或者处于基础备份期间,UXDB服务器会压缩写入到WAL中的完整页面镜像。压缩页面镜像将在 WAL 重放时被解压。默认值为off。只有超级用户可以更改这个设置。

打开这个参数可以减小 WAL 所占的空间且无需承受不可恢复的数据损坏风险, 但是代价是需要额外的 CPU 开销以便在 WAL 记录期间进行压缩以及在 WAL 重放时解压。

wal_buffers (integer)

用于还未写入磁盘的WAL数据的共享内存量。默认值 -1 选择等于shared_buffers的1/32的尺寸(大约3%),但是不小于64kB也不大于WAL段的尺寸(通常为16MB)。如果自动的选择太大或太小可以手工设置该值,但是任何小于32kB的正值都将被当作32kB。 如果指定值时没有单位,则以WAL块作为单位,即为XLOG_BLCKSZ字节,通常为8kB。这个参数只能在服务器启动时设置。

在每次事务提交时,WAL缓冲区的内容被写出到磁盘,因此极大的值不可能提供显著的收益。不过,把这个值设置为几个兆字节可以在一个繁忙的服务器(其中很多客户端会在同一时间提交)上提高写性能。由默认设置-1选择的自动调节将在大部分情况下得到合理的结果。

wal_writer_delay (integer)

指定WAL写入器刷写WAL的频繁程度,以时间为单位。在刷写WAL之后,写入器将根据wal_writer_delay所给出的时间长度进行睡眠,除非被一个异步提交的事务提前唤醒。 如果最近的刷写发生在wal_writer_delay之前,并且小于 wal_writer_flush_after WAL的值产生之后,那么WAL只会被写入操作系统,而不会被刷写到磁盘。如果指定值时没有单位,则以毫秒作为单位。默认值是200毫秒(200ms)。注意在很多系统上,有效的睡眠延迟粒度是10毫秒,把wal_writer_delay设置为一个不是10的倍数的值,其效果和把它设置为大于该值的下一个10的倍数产生的效果相同。这个参数只能在uxsinodb.conf文件中或在服务器命令行上设置。

wal_writer_flush_after (integer)

指定WAL写入器刷写WAL的频繁程度,以卷为单位。 如果最近的刷写发生在wal_writer_delay之前,并且小于wal_writer_flush_afterWAL的值产生之后,那么WAL只会被写入操作系统,而不会被刷写到磁盘。如果wal_writer_flush_after被设置为0,则WAL数据总是会被立即刷写。 如果指定值时没有单位,则以WAL块作为单位,即为XLOG_BLCKSZ字节,通常为8kB。默认是1MB。这个参数只能在uxsinodb.conf文件中或者服务器命令行上设置。

commit_delay (integer)

在一次WAL刷写被发起之前,commit_delay增加一个时间延迟。如果系统负载足够高,使得在一个给定间隔内有额外的事务准备好提交,那么通过允许更多事务通过一个单次WAL刷写来提交能够提高组提交的吞吐量。但是,它也把每次WAL刷写的潜伏期增加到了最多commit_delay。因为如果没有其他事务准备好提交,就会浪费一次延迟,只有在当一次刷写将要被发起时有至少commit_siblings个其他活动事务时,才会执行一次延迟。另外,如果fsync被禁用,则将不会执行任何延迟。如果指定值时没有单位,则以微秒作为单位。默认的commit_delay是零(无延迟)。只有超级用户才能修改这个设置。

第一个准备好刷写的进程会等待配置的间隔,而后续的进程只等到领先者完成刷写操作。

commit_siblings (integer)

在执行commit_delay延迟时,要求的并发活动事务的最小数目。大一些的值会导致在延迟间隔期间更可能有至少另外一个事务准备好提交。默认值是五个事务。

5.2.2.检查点

checkpoint_timeout (integer)

自动WAL检查点之间的最长时间。如果指定值时没有单位,则以秒为单位。合理的范围在30秒和1天之间。默认是5分钟(5min)。增加这个参数的值会增加崩溃恢复所需的时间。这个参数只能在uxsinodb.conf文件中或在服务器命令行上设置。

checkpoint_completion_target (floating point)

指定检查点完成的目标,作为检查点之间总时间的一部分。默认是0.5。这个参数只能在uxsinodb.conf文件中或在服务器命令行上设置。

checkpoint_flush_after (integer)

当执行检查点时写入的数据量超过此数量时,就尝试强制OS把这些写发送到底层存储。 这样做将会限制内核页面高速缓存中的脏数据数量,降低在检查点末尾发出fsync或者OS在后台大批量写回数据时被卡住的可能性。那常常会导致大幅度压缩的事务延迟,但是也有一些情况(特别是负载超过shared_buffers但小于OS页面高速缓存)的性能会降低。这种设置可能会在某些平台上没有效果。 如果指定值时没有单位,则以块为单位,即为BLCKSZ字节,通常为8kB。合法的范围在0(禁用强制写回)和2MB之间。Linux 上的默认值是256kB,其他平台上是0(如果BLCKSZ不是8kB,则默认值和最大值会按比例缩放到它)。这个参数只能在uxsinodb.conf文件中或者服务器命令行上设置。

checkpoint_warning (integer)

如果由于填充WAL段文件导致的检查点之间的间隔低于这个参数表示的时间量,那么就向服务器日志写一个消息(它建议增加max_wal_size的值)。如果指定值时没有单位,则以秒为单位。默认值是30秒(30s)。零则关闭警告。如果checkpoint_timeout低于checkpoint_warning,则不会有警告产生。这个参数只能在uxsinodb.conf文件中或在服务器命令行上设置。

max_wal_size (integer)

在自动WAL检查点之间允许WAL增长到的最大尺寸。这是一个软限制,在特殊的情况下WAL尺寸可能会超过max_wal_size,例如在重度负荷下、archive_command失败或者高的wal_keep_segments的设置。如果指定值时没有单位,则以兆字节为单位。默认为1GB。增加这个参数 可能导致崩溃恢复所需的时间。这个参数只能在uxsinodb.conf文件或者服务器命令行上设置。

min_wal_size (integer)

只要WAL磁盘用量保持在这个设置之下,在检查点时旧的WAL文件总是被回收以便未来使用,而不是直接被删除。这可以被用来确保有足够的WAL空间被保留来应付WAL使用的高峰,例如运行大型的批处理任务。 如果指定值时没有单位,则以兆字节为单位。默认是80MB。这个参数只能在uxsinodb.conf文件或者服务器命令行上设置。

5.2.3.归档

archive_mode (enum)

当启用archive_mode时,可以通过设置archive_command命令将完成的WAL段发送到归档存储。除用于禁用的off之外,还有两种模式on和always。在普通操作期间,这两种模式之间 没有区别,但是当设置为always时,WAL归档器在归档恢复或者后备模式下也会被启用。在always模式下,所有从归档恢复 的或者用流复制传来的文件将被(再次)归档。

archive_mode和archive_command是独立的变量,这样可以在不影响归档模式的前提下修改archive_command。这个参数只能在服务器启动时设置。当wal_level被设置为minimal时,archive_mode不能被启用。

archive_command (string)

本地shell命令被执行来归档一个完成的WAL文件段。字符串中的任何%p被替换成要被归档的文件的路径名, 而%f只被文件名替换(路径名是相对于服务器的工作目录, 即集群的数据目录)。如果要在命令里嵌入一个真正的%字符,可以使用%%。该命令只在成功时返回一个零作为退出状态。

这个参数只能在uxsinodb.conf文件中或在服务器命令行上设置。除非服务器启动时启用了archive_mode,否则它会被忽略。如果archive_mode被启用时,archive_command是一个空字符串(默认),WAL 归档会被临时禁用,但服务器仍会继续累计WAL段文件,期待着一个命令被提供。将archive_command设置为一个只返回真但不做任何事的命令(例如/bin/true或 Windows 上的REM)实际上会禁用归档,也会打破归档恢复所需的 WAL 文件链,因此只有在极少数情况下才能用。

archive_timeout (integer)

archive_command仅在已完成的WAL段上调用。因此,如果服务器只产生很少的WAL流量(或产生流量的周期很长),那么在事务完成和它被安全地记录到归档存储之间将有一个很长的延迟。为了限制未归档数据存在的时间,可以设置archive_timeout来强制服务器来周期性地切换到一个新的WAL段文件。当这个参数被设置为大于零时,只要从上次段文件切换后过了参数所设置的时间量,并且已经有过任何数据库活动(包括一个单一检查点),服务器将切换到一个新的段文件(如果没有数据库活动则会跳过检查点)。 注意,由于强制切换而提早关闭的被归档文件仍然与完整的归档文件长度相同。因此,使用非常短的archive_timeout是不明智的—它将占用巨大的归档存储。一分钟左右的archive_timeout设置通常比较合理。如果希望数据能被更快地从主服务器上复制下来,应该考虑使用流复制而不是归档。如果指定值时没有单位,则以秒为单位。这个参数只能在uxsinodb.conf文件中或在服务器命令行上设置。

5.3.ux_clog

ux_clog文件也是事务日志文件,但与ux_xlog不同的是它记录的是事务的元数据(metadata),记录哪些事务已经完成,哪些事务没有完成。这个日志文件一般非常小,但重要性相当高,不得随意删除或者对其更改信息。