除系统目录外,KingbaseES提供了一些内建视图。一些系统视图为系统目录上一些常用查询提供了便利的访问。其他视图提供了对内部服务器状态的访问。
KingbaseES信息模式 提供了一组可供选择的视图,它和系统视图在功能上有所重叠。由于信息模式是SQL标准,而这里描述的视图是KingbaseES特有的,如果信息模式能提供你所需要的信息,通常最好使用它。
表 表 2.2.17 列出了这里描述的系统视图。每一个视图的详细文档都在后文中。
除了特别注明的,所有这里描述的视图都是只读的。
视图名字 | 用途 |
|---|---|
sys_available_extensions | 可用的扩展 |
sys_available_extension_versions | 所有版本的扩展 |
sys_config | 编译时配置参数 |
sys_cursors | 打开的游标 |
sys_file_settings | 配置文件内容摘要 |
sys_group | 数据库用户组 |
sys_hba_file_rules | 客户端认证配置文件内容的摘要 |
sys_indexes | 索引 |
sys_locks | 当前保持或者等待的锁 |
sys_matviews | 物化视图 |
sys_policies | 策略 |
sys_prepared_statements | 预备好的语句 |
sys_prepared_xacts | 预备好的事务 |
sys_publication_tables | publication和它们相关的表 |
sys_replication_origin_status | 有关复制源的信息,包括复制进度 |
sys_replication_slots | 复制槽信息 |
sys_roles | 数据库角色 |
sys_rules | 规则 |
sys_seclabels | 安全标签 |
sys_sequences | 序列 |
sys_settings | 参数设置 |
sys_shadow | 数据库用户 |
sys_stats | 规划器统计信息 |
sys_stats_ext | extended planner statistics |
sys_tables | 表 |
sys_timezone_abbrevs | 时区简写 |
sys_timezone_names | 时区名字 |
sys_user | 数据库用户 |
sys_user_mappings | 用户映射 |
sys_views | 视图 |
recyclebin | 回收站 |
2.2.1. sys_available_extensions ¶
sys_available_extensions 视图列出了可用于安装的扩展。参见 sys_extension 目录,它显示当前已安装的扩展。
名字 | 类型 | 描述 |
|---|---|---|
|
| 扩展名 |
|
| 默认版本的名字, 如果没有指定则为 |
|
| 当前已安装的扩展版本, 如果没有安装则为 |
|
| 来自于 扩展的控制文件的注释字符串 |
sys_available_extensions 视图是只读的。
2.2.2. sys_available_extension_versions ¶
sys_available_extension_versions 视图列出了可用于安装的指定扩展版本。参见 sys_extension 目录,它显示当前已安装的扩展。
名字 | 类型 | 描述 |
|---|---|---|
|
| 扩展名 |
|
| 版本名 |
|
| 如果此版本的扩展当前已安装则为真 |
|
| 如果 只有超级用户被允许安装此扩展则为真 |
|
| 如 果扩展能被重定位到另一个模式则为真 |
|
| 此扩展必须被安 装到的模式名,如果此扩展是部分或者 全部可以重定位的,此列为 |
|
| 先决条件 扩展的名字,如果没有则为 |
|
| 来自于扩展的控制文件的注释字符串 |
sys_available_extension_versions 视图是只读的。
2.2.3. sys_config ¶
视图 sys_config 描述了当前安装的KingbaseES版本中的编译时配置参数。它存在的本意是用于那些要和KingbaseES交互的软件包,让它们能找到所需要的头文件和库。它提供了和 sys_config KingbaseES客户端应用相同的基本信息。
默认情况下, sys_config 视图只能由超级用户读取。
名称 | 类型 | 描述 |
|---|---|---|
|
| 参数名 |
|
| 参数值 |
2.2.4. sys_cursors ¶
sys_cursors 视图列出了当前可用的游标。游标可以以几种方式定义:
通过SQL中的DECLARE语句
通过前端/后端协议中的绑定消息
通过服务器编程接口(SPI)
sys_cursors 视图显示由任何这些方式创建的游标。视图只存在于定义它们的事务期间,除非声明了 WITH HOLD 。因此非保持游标只在它们的创建事务结束前存在于这个视图中。
注意
视图用于在内部实现KingbaseES的某些部件,例如过程语言。因此, sys_cursors 视图可能包括那些不是由用户显式创建的游标。
名字 | 类型 | 描述 |
|---|---|---|
|
| 游标名 |
|
| 提交用于定义此游标的查询语句 |
|
| 如果 游标是可保持的(即,它可以在 其定义事务提交后被访问)则为 |
|
| 如果游标被 声明为 |
|
| 如果游 标是可滚动的(即,允许以一种 非顺序的方式检索行)则为 |
|
| 游标被声明的时间 |
sys_cursors 视图是只读的。
2.2.5. sys_file_settings ¶
视图 sys_file_settings 提供了服务器配置文件 内容的概要。这个视图中的每一行表示配置文件中出现的一个 “name = value”项,还带有注解指示该值是否被成功地应用。在 配置文件有问题时,有可能出现额外的行,它们没有相关的 “name = value”项,一个例子是配置文件中有语法错误。
这个视图有助于检查在配置文件中打算做的修改是否能工作,或者用来诊断 之前的失败。注意这个视图报告的是配置文件的当前内容, 而不是服务器最后应用的值(这些值通常查看 sys_settings 视图就够了)。
默认情况下, sys_file_settings 视图只有超级用户可读。
名称 | 类型 | 描述 |
|---|---|---|
|
| 配置文件的完整路径名 |
|
| 该项在配置文件中出现的行号 |
|
| 项被处理的顺序(1.. ``n`` ) |
|
| 配置参数名 |
|
| 被赋予给参数的值 |
|
| 为真表示值已被成功应用 |
|
| 如果非空,表示一个错误 消息,它说明为什么这个项不能被应用 |
如果配置文件包含语法错误或者非法参数名,服务器将不会尝试从其中应用 任何设置,并且因此所有的 applied 域都为假。在这种情 况下,将会有一个或者多个行的 error 域为非空, 它们说明了为什么出问题。否则,将尽可能应用每个设置。如果一个设置不能 被应用(例如非法值或者该设置不能在服务器开始后改变),会有一个合适的 消息存储在它的 error 域中。一个项的 applied 域为假的另一种情况是它被后面一个具有相同参数名的项所覆盖,这种情况不 会被认为是一种错误,因此在 error 域中不会有 错误消息。
关于更改运行时参数的各种方法请见 设置参数 。
2.2.6. sys_group ¶
视图 sys_group 为向后兼容而存在:它模拟了存在于KingbaseES V7之前版本中的一个目录。它显式所有角色的名称和未被标记 rolcanlogin 的成员,它是被用做组的角色集合的近似。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
|
| 组名 |
|
|
| 组ID |
|
|
| 包含此组中角色ID的一个数组 |
2.2.7. sys_hba_file_rules ¶
视图 sys_hba_file_rules 提供客户端认证配置文件 sys_hba.conf 内容的摘要。该文件中每个非空、非注释行都会在这个视图中出现一行,行中还有标记表示该规则是否被成功地应用。
这个视图可用来检查认证配置文件中按计划的更改是否起作用,或者诊断之前的失败。注意这个视图报告的是该文件的当前内容,而不是服务器最后一次载入的内容。
默认情况下,只有超级用户可以读取 sys_hba_file_rules 视图。
名称 | 列 | 描述 |
|---|---|---|
|
| 这条 规则在 |
|
| 连接类型 |
|
| 这条规则应用的数据库名列表 |
|
| 这条规则应用的用户及组名列表 |
|
| 主机名或IP地址,或者 |
|
| IP地址掩码,如果不适用则为空 |
|
| 认证方法 |
|
| 为认证方法指定的选项(如果有) |
|
| 如果非空,则是一个错误 消息,它表示为什么这一行无法被处理 |
通常,反映一个不正确项的行只有 line_number 和 error 域中有值。
更多有关客户端认证配置的信息请参考 强身份验证 .
2.2.8. sys_indexes ¶
视图 sys_indexes 提供对于数据库中每一个索引信息的访问。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
|
| 包含 表和索引的模式名 |
|
|
| 此 索引的基表的名字 |
|
|
| 索引名 |
|
|
| 包含索引的表空间 名(如果是数据库 的默认值则为空) |
|
| 索引定义( |
2.2.9. sys_locks ¶
视图 sys_locks 提供了数据库服务器上活动进程中保持的锁的信息。
sys_locks 中对每一个活动可锁对象、请求锁模式和相关进程的组合都有一行。因此,如果多个进程持有或者正在等待一个可锁对象上的锁,同一个可锁对象可能出现很多次。但是,一个当前没有被锁的对象根本不会出现。
有多种不同类型的可锁对象:整个关系(如表)、关系的单个页、关系的单个元组、事务ID(包括虚拟和永久ID)和普通数据库对象(由类OID和对象OID标识,和 sys_description 或 sys_depend 中的相同方式)。扩展一个关系的权力也被表示为一个独立的可锁对象。“咨询”锁可以具有用户定义的意义。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
| 可 锁对象的类型: | |
|
|
| 锁目标存在的 数据库的OID, 如果目标是一个 共享对象则为0 ,如果目标是一 个事务ID则为空 |
|
|
| 作为 锁目标的关系的 OID,如果目标 不是一个关系或 者只是关系的一 部分则此列为空 |
|
| 作为锁目标的 页在关系中的页 号,如果目标不 是一个关系页或 元组则此列为空 | |
|
| 作为锁 目标的元组在页 中的元组号,如 果目标不是一个 元组则此列为空 | |
|
| 作为 锁目标的事务虚 拟ID,如果目标 不是一个虚拟事 务ID则此列为空 | |
|
| 作为锁目标的 事务ID,如果目 标不是一个事务 ID则此列为空ID | |
|
|
| 包含锁目标的 系统目录的OID ,如果目标不是 一个普通数据库 对象则此列为空 |
|
| 任意OID列 | 锁目标在它 的系统目录中的 OID,如果目标 不是一个普通数 据库对象则为空 |
|
| 锁的目标列号( | |
|
| 保持这个锁或者 正在等待这个锁 的事务的虚拟ID | |
|
| 保 持这个锁或者正 在等待这个锁的 服务器进程的P ID,如果此锁被 一个预备事务所 持有则此列为空 | |
|
| 此进 程已持有或者希 望持有的锁模式 | |
|
| 如果锁已授 予则为真,如果 锁被等待则为假 | |
|
| 如果锁通 过快速路径获得 则为真,通过主 锁表获得则为假 |
一个行的 granted 为真表示一个被指定进程持有的锁。为假表示该进程当前正在等待获取这个锁,这意味着至少一个其他进程正持有或等待同一个可锁对象上的一个冲突锁。该等待进程将一直休眠直到其他锁被释放(或者一个死锁状态被检测到)。单个进程在同一时间只能等待最多一个锁。
贯穿一个事务的运行,一个服务器进程在其生存周期内都持有一个在其虚拟事务ID上的排他锁。如果一个永久ID被分配给事务(通常发生在事务改变数据库状态时),它也会持有一个在其永久事务ID上的排他锁直到它结束。当一个事务发现它需要等待另一个事务,它也会尝试获取其他事务ID上的共享锁(不管是虚拟还是永久ID,视情况而定)。这只有当其他进程终止并释放其锁后才会成功。
尽管元组是一种可锁对象,关于行级锁的信息被存储在磁盘而不是内存中,因此行级锁通常不在这个视图中出现。如果一个进程正在等待一个行级锁,它通常在这个视图中出现,并且表示形式为正在等待已持有该行级锁的永久事务ID上的锁。
咨询锁可以在由一个单一 bigint 值或两个整形值构成的键上获取。一个 bigint 键被显示为其高位部分在 classid 列中,低位部分在 objid 列中,并且 objsubid 等于1。原来的 bigint 值可以使用表达式 (classid::bigint << 32) | objid::bigint 重组。整形键被显示为第一个键在 classid 列中,第二个键在 objid 列中,并且 objsubid 等于2。键的实际意义由用户决定。咨询锁是每一个数据库的本地锁,所以 database 列对于一个咨询锁没有意义。
sys_locks 提供了一个对于整个数据集簇中所有锁的全局视图,而不仅仅是与当前数据库相关的锁。尽管它的 relation 列可以被连接到 sys_class . oid 来标识被锁关系,但这种方法只有在关系属于当前数据库( database 列是当前数据库OID或者0的锁对应的关系)的情况下才会得到正确的结果。
pid 列可以被连接到sys_stat_activity视图的 pid 列来得到持有或等待持有每一个锁的会话的信息。 例如
SELECT * FROM sys_locks pl LEFT JOIN sys_stat_activity psa
ON pl.pid = psa.pid;
另外,如果正在使用预备事务, virtualtransaction 列可以被连接到 sys_prepared_xacts 视图的 transaction 列来得到持有该锁的预备事务的信息(一个预备事务不可能正在等待一个锁,但它在运行中会一直持有已获得的锁)。
例如:
SELECT * FROM sys_locks pl LEFT JOIN sys_prepared_xacts ppx
ON pl.virtualtransaction = '-1/' || ppx.transaction;
虽然通过自连接 sys_locks 可以获得哪些进程阻塞了其他哪些进程的信息,但是很难得到其中的细节。这样一个查询隐藏了关于哪些锁模式与其他哪些锁模式冲突的知识。更糟糕的是, sys_locks 视图无法给出所等待队列中进程的等待顺序,也无法显示哪些进程是代表其他客户端会话运行的并行工作者。更好的方法是使用 sys_blocking_pids() 函数来标识一个等待进程是被哪些进程阻塞的。
sys_locks 视图显示来自于普通锁管理器和谓词锁管理器的数据,它们是独立的系统。此外,普通锁管理器把它的锁分为普通锁和 快速路径 锁。这些数据并不被保证是完全一致的。当视图被查询时,快速路径锁上的数据( fastpath = true )会被一次性从每一个后端收集起来,且并不冻结整个锁管理器的状态。因此有可能某些锁在上述信息被收集的过程中被获得或者释放。注意,不管怎样这些锁是已知不会和任何当前正在发生的锁冲突。在所有后端已经查询了快速路径锁后,普通锁管理器的剩余部分被作为一个单元锁住,并且所有剩余锁的一个一致快照被作为一个原子动作收集。在解锁普通锁管理器后,谓词锁管理器也被类似地锁住并且所有谓词锁被作为一个原子动作收集。因此,在快速路径锁这种特殊情况下,每一个锁管理器会传递一个一致的结果组。但由于我们并不会同时锁上两个锁管理器, 在我们询问完普通锁管理器后或者询问谓词锁管理器之前,锁可以被获得或者释放。
如果对此视图频繁地访问,对普通或者谓词锁管理器加锁可能会对数据库性能产生一定影响。虽然这些锁只会在最少的时间内被保持(足以从锁管理器获得数据),但这无法完全消除可能产生的性能影响。
2.2.10. sys_matviews ¶
视图 sys_matviews 提供了关于数据库中每一个物化视图的信息。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
|
| 包含物化视 图的模式的名字 |
|
|
| 物化视图的名字 |
|
|
| 物化视 图拥有者的名字 |
|
|
| 包含物化视图 的表空间名(如 使用数据库默认 表空间则为空) |
|
| 如果物化 视图有(或者最 近有过)任何索 引,则此列为真 | |
|
| 如果物化 视图当前已被填 充,则此列为真 | |
|
| 物 化视图的定义( 一个重构的 |
2.2.11. sys_policies ¶
视图 sys_policies 提供了有关数据库中行级 安全性策略的信息。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
|
| 包含策略所在 表的模式的名称 |
|
|
| 策 略所在表的名称 |
|
|
| 策略名称 |
|
| 策略是宽容性的 还是限制性的? | |
|
| 这个 策略适用的角色 | |
|
| 这个策略 适用的命令类型 | |
|
| 作为这 个策略适用的查 询的安全屏障条 件增加的表达式 | |
|
| 作为尝试向该表 增加行的查询的 WITH CHECK 条 件增加的表达式 |
2.2.12. sys_prepared_statements ¶
sys_prepared_statements 视图显示在当前会话中可用的所有预备语句。关于预备语句详见 PREPARE 。
sys_prepared_statements 为每一个预备语句包含一行。当一个新的预备语句被创建时在此视图中会增加一行,反之当一个预备语句被释放时在此视图中会删除一行(例如,通过 DEALLOCATE 命令)。
名字 | 类型 | 描述 |
|---|---|---|
|
| 预备语句的标识符 |
|
| 客户端提交用于创建 此预备语句的查询语句。对于 通过SQL创建的预备语句,这 里是由客户端提交的 |
|
| 预备语句被创建的时间 |
|
| 预备语 句期望的参数类型,以一个 |
|
| 如果预备语 句通过SQL命令 |
sys_prepared_statements 视图为只读。
2.2.13. sys_prepared_xacts ¶
视图 sys_prepared_xacts 显示关于两阶段提交(详见 PREPARE TRANSACTION 的当前准备好事务的信息。
sys_prepared_xacts 为每一个预备事务包含一行。当事务被提交或回滚时,相应的项将被移除。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
| 预备事务的 数字事务标识符 | |
|
| 分配给事 务的全局标识符 | |
|
| 此事务为提 交准备好的时间 | |
|
|
| 执行 此事务的用户名 |
|
|
| 执行此事务所 在数据库的名字 |
当 sys_prepared_xacts 视图被访问时,内部事务管理器数据结构被暂时地锁住,并为视图的显示产生一个副本。这确保了视图中是一组一致的结果,并且不会阻塞普通操作。不管怎样,当此视图被频繁访问时,会对数据库性能有所影响。
2.2.14. sys_publication_tables ¶
视图 sys_publication_tables 提供publication与其所包含的表之间的映射信息。和底层的目录 sys_publication_rel 不同,这个视图展开了定义为 FOR ALL TABLES 的publication,这样对这类publication来说,每一个合格的表都有一行。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
|
| publication名称 |
|
|
| 包含表的方案名称 |
|
|
| 表名 |
2.2.15. sys_replication_origin_status ¶
sys_replication_origin_status 视图包含有关一个特定源已经重放了多少的信息。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
|
| 内 部的节点标识符 |
|
|
| 外 部的节点标识符 |
|
| 源节点的 LSN,到 这个位置的数据 都已经被复制。 | |
|
| 这个节点的 LSN, |
2.2.16. sys_replication_slots ¶
sys_replication_slots 视图提供了当前存在于数据库集簇上的所有复制槽的列表,其中也包括复制槽的当前状态。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
| 一个唯一 的、集簇范围内 的复制槽标识符 | |
|
| 包含这 个逻辑槽正在使 用的输出插件的 共享对象基础名 称,这个列对于 物理槽为空值。 | |
|
| 槽类型 - | |
|
|
| 与这个槽相 关的数据库的OID, 或者为空值。 只有逻辑槽具有 相关的数据库。 |
|
|
| 与这个槽相关 的数据库的名称 ,或者为空值。 只有逻辑槽具有 相关的数据库。 |
|
| 如果这是 一个临时复制槽 则为真。临时槽 不会被保存在磁 盘上并且会在出 错或会话结束时 自动被删除掉。 | |
|
| 如 果这个槽当前正 在被使用则为真 | |
|
| 如果槽当 前正在被使用, 则记录使用这个 槽的会话的进程 ID。如果槽 没有被使用则为 | |
|
| 这个槽要 需要数据库保留 的最旧事务。 | |
|
| 这个槽要需要 数据库保留的影 响系统目录的最 旧事务。 | |
|
| 可能 仍被这个槽的消 费者要求的最旧 WAL地址( | |
|
| 代表 逻辑槽的消费者 已经确认接收数 据到什么位置的 地址( |
2.2.17. sys_roles ¶
视图 sys_roles 提供了关于数据库角色的信息。这是 sys_authid 的一个公共可读视图,它隐去了口令域。
此视图显示了低层表的OID列,因为需要它来和其他目录做连接。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
| 角色名 | |
|
| 角色是否具有 超级用户权限? | |
|
| 如果此角色 是另一个角色的 成员,角色是否 能自动继承另一 个角色的权限? | |
|
| 角色能否 创建更多角色? | |
|
| 角色能 否创建数据库? | |
|
| 角色是否能登 录?即此角色能 否被作为初始会 话授权标识符? | |
|
| 角色是一个 复制角色。复制 角色可以开启复 制连接并且创建 和删除复制槽。 | |
|
| 对于 一个可登录的角 色,这里设置角 色可以发起的最 大并发连接数。 -1表示无限制。 | |
|
| 不是口令 (看起来是 | |
|
| 口令失效 时间(只用于口 令认证),如果 永不失效则为空 | |
|
| 绕过每一条行级 安全性策略的角 色 | |
|
| 运 行时配置变量的 角色特定默认值 | |
|
|
| 角色的ID |
2.2.18. sys_rules ¶
视图 sys_rules 提供对查询重写规则的信息访问。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
|
| 包含表的模式名 |
|
|
| 规则适用的表名 |
|
|
| 规则名 |
|
| 规则定义( 创建命令的重构) |
sys_rules 视图排除了视图和物化视图的 ON SELECT 规则,它们可以在 sys_views 和 sys_matviews 中找到。
2.2.19. sys_seclabels ¶
视图 sys_seclabels 提供对安全标签的信息访问。它是 sys_seclabel 目录的一个便于查询的版本。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
| any OID column | 安全标 签所属对象的OID |
|
|
| 对象出现 的系统目录的OID |
|
| 对 于一个表列上的安 全标签,这里是列 号( | |
|
| 此 标签应用的对象类 型,以文本方式。 | |
|
|
| 如果适用,为此 对象的名字空间的 OID;否则为空。 |
|
| 此标签应用的对象 名,以文本形式。 | |
|
|
| 与此标签相 关的标签提供者。 |
|
|
| 应用于此 对象的安全标签。 |
2.2.20. sys_sequences ¶
视图 sys_sequences 提供对数据库中每个序列的信息的访问。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
|
| 包 含序列的方案名 |
|
|
| 序列的名称 |
|
|
| 序列 的拥有者的名称 |
|
|
| 序列的数据类型 |
|
| 序列的起始值 | |
|
| 序列的最小值 | |
|
| 序列的最大值 | |
|
| 序列的增量值 | |
|
| 序列是否循环 | |
|
| 序列的缓冲尺寸 | |
|
| 最 后一个被写入到 磁盘的序列值。 如果使用了缓冲 ,这个值可能比 从序列中取出的 最后一个值大。 如果还没有从该 序列读取过,则 为空。此外,如 果当前用户没有 该序列上的 |
2.2.21. sys_settings ¶
视图 sys_settings 提供了对服务器上运行时参数的访问。它本质上是 SHOW 和 SET 命令的可替换接口。它还提供了 SHOW 不能提供的关于每一个参数的一些现实,例如最大值和最小值。
名字 | 类型 | 描述 |
|---|---|---|
|
| 运行时配置参数名 |
|
| 参数的当前值 |
|
| 参数的隐式单元 |
|
| 参数的逻辑组 |
|
| 参数的简短描述 |
|
| 附加的参数的详细描述 |
|
| 要求设置此参数值的上下文 |
|
| 参数类型 ( |
|
| 当前参数值的来源 |
|
| 参数 的最小允许值(对非数字值为空) |
|
| 参数 的最大允许值(对非数字值为空) |
|
| 一个枚举 参数的允许值(对非数字值为空) |
|
| 如果参数没有被别的其他设置,此 列为在服务器启动时设定的参数值 |
|
| 在当前会话中, |
|
| 当前值被设置的配置文件(空值表 示从非配置文件的其他来源设置, 由不是超级用户也不是 |
|
| 当前值被设置的配置文件中的 行号(空值表示从非配置文件的其 他来源设置,由不是超级用户也不 是 |
|
| 如果配置文件中修改了该值 但需要重启,则为 |
对于 context 有多种可能的取值。为了降低改变设置的难度,它们是:
internal这些设置不能被直接修改,它们反映了内部决定的值。某些可能在使用不同配置选项重建系统时或者改变
initdb的选项时可以调整。kingbase这些设置只能在服务器启动时应用,因此任何修改都需要重启服务器。这些设置的值通常都存储在
kingbase.conf文件中,或者在启动服务器时通过命令行传递。当然,具有更低context类型的设置也可以在服务器启动时间被设置。sighup对于这些设置的修改可以在
kingbase.conf中完成并且不需要重启服务器。发送一个SIGHUP信号给kingbase会导致它重新读取kingbase.conf并应用修改。Kingbase将会把SIGHUP信号传递给它的孩子进程,这样它们也会获得新的值。superuser-backend对于这些设置的更改可以在
kingbase.conf中进 行而无需重启服务器。也可以在连接请求包(例如通过libkci 的KINGBASE_OPTIONS环境变量)中为一个特定的会话设定它们,但是 只有在连接用户是超级用户时才能这样做。如果,在会话启动后这些设置就 不会改变。如果在kingbase.conf改变了它们, 向 kingbase 发送一个SIGHUP信号让 kingbase 重新读取kingbase.conf。新的值将 只会影响后续启动的会话。backend对于这些设置的修改可以在
kingbase.conf中完成并且不需要重启服务器。它们也可以在一个连接请求包(例如,通过libkci的KINGBASE_OPTIONS环境变量)中为一个特定会话设置 ,任何用户都可以为这个会话做这种修改。然而,这些设置在会话启动后永不变化。如果在kingbase.conf中修改它们,可以向kingbase发送一个SIGHUP信号让它重读kingbase.conf。新值只会影响后续启动的会话。superuser这些设置可以从
kingbase.conf设置,或者在会话中用SET命令设置。仅当没有通过SET设置会话本地值时,kingbase.conf中的改变才会影响现有的会话。user这些设置可以从
kingbase.conf设置,或者在会话中用SET命令设置。任何用户都被允许修改它们的会话本地值。仅当没有通过SET设置会话本地值时,kingbase.conf中的改变才会影响现有的会话。
更多关于修改这些参数的方法的信息请见 设置参数 。
sys_settings 视图不能被插入或者从中删除,但是它可以被更新。在 sys_settings 的一行上的一个 UPDATE 等价于在该参数上执行一个 SET 命令。修改将只会影响当前会话使用的值。如果一个 UPDATE 在一个后来中断的事务中被发出, UPDATE 命令的效果也会随着事务的回滚而消失。一旦所在的事务被提交,效果将一直保持到会话结束,除非有其他 UPDATE 或 SET 重新修改它。
2.2.22. sys_shadow ¶
视图 sys_shadow 的存在是为了向后兼容:它模拟了在KingbaseESV7版本之前的一个系统目录。它显示 sys_authid 中所有被标记为 rolcanlogin 的角色的属性。
由于这个表包含口令,所以不能是公众可读的,这也是采用 sys_shadow 这个名字的原因。 而 sys_user 是 sys_shadow 上的一个公共可读视图,它屏蔽了口令域。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
|
| 用户名 |
|
|
| 用户的ID |
|
| 用户 能否创建数据库 | |
|
| 用户是否 为一个超级用户 | |
|
| 用户能 否开启流复制并 将系统设置或者 取消备份模式。 | |
|
| 用户能否绕 过所有的行级安 全性策略 | |
|
| 口令 (可能被加密) ,如果没有则为 空。关于加密口 令如何存储请参 见 sys_authid | |
|
| 口 令过期时间(仅 用于口令认证) | |
|
| 运行时配置变 量的会话默认值 |
2.2.23. sys_stats ¶
视图 sys_stats 提供对存储在 sys_statistic 目录中信息的访问。此视图能访问 sys_statistic 行是有限制的,可访问行所对应的表必须是用户有读权限的。因此让所有用户都可以读此视图是安全的。
sys_stats 也被设计为能以更适合阅读的格式显示底层目录的信息— 但代价是只要为 sys_statistic 定义了新的槽类型,就必须要扩展此视图的模式。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
|
| 包含表的模式名 |
|
|
| 表名 |
|
|
| 被 此行描述的列名 |
|
| 如果为真, 表示此行包括继 承子列,不仅仅 是指定表中的值 | |
|
| 列 项中为空的比例 | |
|
| 列项 的平均字节宽度 | |
|
| 如果大于 零,表示列中可 区分值的估计个 数。如果小于零 ,是可区分值个 数除以行数的负 值(当 | |
|
| 列中 最常用值的一个 列表(如果没有 任何一个值看起 来比其他值更常 用,此列为空) | |
|
| 最常 用值的频率列表 ,即每一个常用 值的出现次数除 以总行数(如果 | |
|
| 将列值 划分成大小接近 的组的值列表。 如果存在 | |
|
| 物理 行顺序和列值逻 辑顺序之间的统 计关联。其范围 从-1到+1。当值 接近-1或+1时, 在列上的一个索 引扫描被认为比 值接近0时的代 价更低,因为这 种情况减少了对 磁盘的随机访问 (如果列数据类 型不具有一个 | |
|
| 在列值中, 最经常出现的非 空元素列表(对 标度类型为空) | |
|
| 最常用元 素值的频度列表 ,即含有至少一 个给定值实例的 行的分数。在每 个元素的频度之 后有二至三个附 加值,它们是每 个元素频度的最 小和最大值,以 及可选的空元素 的频度(如果 | |
|
| 在列值中 可区分非空元素 值计数的一个直 方图,后面跟随 可区分非空元素 的平均数(对于 标度类型为空) |
在数组域中项的最大数目可以使用 ALTER TABLE SET STATISTICS 命令控制,或者设置 default_statistics_target 运行时参数从全局上进行控制
2.2.24. sys_stats_ext ¶
sys_stats_ext 视图提供对存储在 sys_statistic_ext 和 sys_statistic_ext_data 目录的信息的访问。该视图只允许访问 sys_statistic_ext 和 sys_statistic_ext_data 中用户有权读取的表, 因此允许公共访问读取这个视图是安全的。
sys_stats_ext 也被设计成以比底层目录更可读的格式来表示信息--代价是每当向 sys_statistic_ext 添加新类型的扩展统计信息时,必须对其模式进行扩展。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
|
| 包含表的模式名 |
|
|
| 表名 |
|
|
| 包含扩 展统计的模式名 |
|
|
| 扩展统计名称 |
|
|
| 扩 展统计的所有者 |
|
|
| 定义扩展统计 信息的列的名称 |
|
| 为记录启用的扩 展统计信息类型 | |
|
| 对于 列值的组合,有 n个不同的计数 。如果远大于零 ,不同值的估计 数目在组合中。 如果小于0,则 用不同值的负数 除以根据行数。 (使用 否定形式,当 | |
|
| 函 数相关统计数据 | |
|
| 列中最常见的 值组合的列表。 (如果没 有比其他任何组 合更常见的组合 ,则为Null。) | |
|
| 空标志最常见 值组合的列表。 (当 | |
|
| 频率最常见 组合的列表,即 ,每个的出现次 数除以总行数。 (当 | |
|
| 基频率最 常见组合的列表 ,即,per-value 频率的乘积。 (当 |
可以使用 ALTER TABLE SET STATISTICS 指令,或者通过全局地设置 default_statistics_target 运行时参数,来按列控制数组字段中的最大条目数。
2.2.25. sys_tables ¶
视图 sys_tables 提供了对数据库中每个表的有用信息的访问。
名字 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
|
| 包含表的模式名 |
|
|
| 表名 |
|
|
| 表拥有者的名字 |
|
|
| 包含 表的表空间的名 字(如果使用数 据库的默认表空 间,此列为空) |
|
|
| 如果表有(或 最近有过)任何 索引,此列为真 |
|
|
| 如果表有 (或曾经有过) 规则,此列为真 |
|
|
| 如果表有(或 者曾经有过)触 发器,此列为真 |
|
|
| 如果表上启用了 行安全性则为真 |
2.2.26. sys_timezone_abbrevs ¶
视图 sys_timezone_abbrevs 提供了对当前被时间输入例程识别的时区缩写的列表。当 timezone_abbreviations 运行时参数被修改,此视图的内容会发生变化。
名字 | 类型 | 描述 |
|---|---|---|
|
| 时区缩写 |
|
| 相对于UTC的偏移(正值表示格林威治东部) |
|
| 如果这是一个夏令时缩写,则为真 |
虽然大部分时区缩写表示从 UTC 开始的固定偏移,但是有一些在历史上有值的变化。在这种情况下,这个视图表示它们现在的含义。
2.2.27. sys_timezone_names ¶
视图 sys_timezone_names 提供了一个被 SET TIMEZONE 识别的时区名字的列表,以及它们的相关缩写、UTC偏移和夏令时状态(从技术上来说,KingbaseES不使用UTC是因为闰秒没有被处理)。和 sys_timezone_abbrevs 中展示的缩写不同,这里很多名字隐含了一组夏令时转换日期规则。因此,相关信息在本地DST边界间变化。所显示的信息基于 CURRENT_TIMESTAMP 的当前值计算得来。
名字 | 类型 | 描述 |
|---|---|---|
|
| 时区名 |
|
| 时区缩写 |
|
| 相对于UTC的偏移(正值表示格林威治东部) |
|
| 如果当前保持为夏令时则为真 |
2.2.28. sys_user ¶
视图 sys_user 提供关于数据库用户的信息。这是 sys_shadow 的一个公共可读的视图,它消除了口令域。
名字 | 类型 | 描述 |
|---|---|---|
|
| 用户名 |
|
| 用户的ID |
|
| 用户是否能创建数据库 |
|
| 用户是否为超级用户 |
|
| 用户能否开启流复制 以及将系统转入/转出备份模式。 |
|
| 用户能否绕 过所有的行级安全性策略 |
|
| 不是口令( 总是显示为 |
|
| 口 令过期时间(只用于口令认证) |
|
| 运行时配置变量的会话默认值 |
2.2.29. sys_user_mappings ¶
视图 sys_user_mappings 提供有关用户映射的信息。这是 sys_user_mapping 的一个公共可读视图,它对无权使用的用户省去了选项域。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
|
| 用户映射的OID |
|
|
| 包含该映射的 外部服务器的OID |
|
|
| 外部服务器名 |
|
|
| 将被 映射的本地角色的 OID,如果用户映 射是公共的则为0 |
|
| 将被 映射的本地用户名 | |
|
| 用户映射指定选项 ,以“keyword=value” 字符串的形式 |
为了保护存储为用户映射选项的口令信息, umoptions 列将被读作空,除非满足下列情况之一:
当前用户就是被映射的用户,并且拥有该服务器或者持有其上的
USAGE特权当前用户是服务器的拥有者并且映射是用于
PUBLIC当前用户是一个超级用户
2.2.30. sys_views ¶
视图 sys_views 提供了数据库中每个视图的信息。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
|
| 包含视图的模式名 |
|
|
| 视图名称 |
|
|
| 视图拥有者的名字 |
|
| 视图定义 (一个重构的 | |
|
|
| 是否可更新 |
2.2.31. recyclebin ¶
视图 recyclebin 提供回收站的信息。
名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
|
|
| 被删除对象OID |
|
|
| 对象删除之前的名称 |
|
| 对象删除时间 | |
|
|
| 对象类型 |




