pysx0503
作者pysx0503·2020-04-30 23:53
系统工程师·第十区。散人

systables

字数 2803阅读 605评论 0赞 0

systables

GBase 8s V8.7 安全数据库 SQL 参考指南

南大通用数据技术股份有限公司 -74-

s systables 系统目录表对在数据库(包括系统目录的表和视图)中定义的每

个表对象(表、视图、同义词或 GBase 8s 中的序列)包含一行。

表 1 SYSTABLES 表列描述

列 类型 解释

tabname VARCHAR(128) 表、视图、同义词或序列的名称

owner CHAR(32) 表的所有者(系统目录表的用户 e GBase 和

数据库表的 username)

partnum INTEGER 物理存储位置代码

tabid SERIAL 系统指定的顺序标识编号

rowsize SMALLINT 最大行大小,以字节计 ( < 32,768)

ncols SMALLINT 表中的列数

nindexes SMALLINT 表的索引数

nrows FLOAT 表中的行数

created DATE 创建或上次修改表时的日期

version INTEGER 改变表时更改的数字

tabtype CHAR(1) 指示表对象类型的代码:

 T = 表

 E = 外部表

 V = 视图

 Q = 序列

 P = 专用同义词

 S = 公共同义词

(类型 S 在符合 ANSI 标准的数据库中

不可用。)

locklevel CHAR(1) 表的锁定方式:

GBase 8s V8.7 安全数据库 SQL 参考指南

南大通用数据技术股份有限公司 -75-

列 类型 解释

 B = 页面和行级别

 P = 页面级别

 R = 行级别

npused FLOAT 数据库服务器曾经在 tablespace 中启动

过的数据页数

fextsize INTEGER 初始扩展数据块的大小 (KB)

nextsize INTEGER 所有后续扩展数据块的大小 (KB)

flags SMALLINT 用于对永久表分类的代码:

ROWID

1 - 已定义行标识列

UNDER

2 - 在超表之下创建的表

VIEWREMOTE

4 - 视图基于远程表

CDR

8 - 已定义 CDRCOLS

RAW

16 - (GBase) RAW 表

EXTERNAL

32- 外部表

AUDIT

64 - 审计表属性 - FGA

AQT

128 - 视图是用于卸载 DWA 的 AQT

VIRTAQT

256 - 视图是虚拟 AQT

GBase 8s V8.7 安全数据库 SQL 参考指南

南大通用数据技术股份有限公司 -76-

列 类型 解释

site VARCHAR(128) 保留供将来使用

dbname VARCHAR(128) 保留供将来使用

type_xid INTEGER d sysxtdtypes.extended_id 中的代码(对于

类型表),或者 0(对于无类型表)

am_id INTEGER 访问方法代码(s sysams 表的关键字)

NULL 或 0 表示内置存储管理器

ustlowts DATETIME YEAR

TO FRACTION (5)

上次记录表、行和页计数统计信息的时间

secpolicyid INTEGER 已与表连接的安全策略的标识。 NULL 表

示不受保护的表

protgranularity CHAR(1) LBAC 粒度级别:

 R:行级别粒度

 C:列级别粒度

 B:行和列的粒度

 “空白”表示不受保护的表

statlevel CHAR(1) 统计信息级别

 T = 表

 F = 分段

 A = 自动

statchange SMALLINT 仅供内部使用

为 systables 表中记录的每个表、视图、序列和同义词指定 tabid,它是系

统指定的、唯一标识该对象的 SERIAL 值。保留前 99 个 tabid 值用于系统目

录。数据库中第一个用户定义的表对象的 tabid 始终为 100。

对 tabid 列建立了索引,且该列只包含唯一值。tabname 和 owner 列的

组合索引也需要唯一值。

GBase 8s V8.7 安全数据库 SQL 参考指南

南大通用数据技术股份有限公司 -77-

version 列包含创建新表时存储在 systables 中的已编码数字。当对表执行

数据定义的语句(例如,ALTER INDEX、ALTER TABLE、DROP INDEX 和 CREATE

INDEX)时,此值的一部分会增大。

在 flags 列中,ST_RAW 表示支持事务日志记录的数据库中的非日志记录

永久表。

SQL_LOGICAL_CHAR 参数的设置会编码到描述 VERSION 表的行中的

systables.flags 列值。注意此由系统生成的表的标识中有一个前导空格。

要 确 定 数 据 库 是 否 启 用 可 将 逻 辑 字 符 语 义 应 用 到 字 符 列 声 明 的

SQL_LOGICAL_CHAR 配置参数,您可以执行以下查询:

SELECT flags INTO $value FROM 'GBase'.systables WHERE tabname = '

VERSION';

由于 SQL_LOGICAL_CHAR 设置以“VERSION.flags”值的两个最不重要数

位编码,因此您可以依据以下公式从返回的 flags 值计算其设置:

SQL_LOGICAL_CHAR = (value & 0x03) + 1

此处的 & 是位 AND 运算符。任何大于 1 的 SQL_LOGICAL_CHAR 设

置表示创建数据库时已启用 SQL_LOGICAL_CHAR,且字符列的显式或缺省最

大大小规范将乘以该设置。

当执行引用数据库表的预编译语句时,会检查版本值以确保自预编译语句

以来没有进行任何更改。如果修改了表模式的 DDL 操作更改了版本值并且

SET ENVIRONMENT 语句的 IFX_AUTO_REPREPARE 设置已禁用了自动重新

编译,那么不会执行预编译语句,并且必须再次预编译该语句。

npused 列既不反映用于 BYTE 或 TEXT 数据的页数,也不反映 DELETE

或 TRUNCATE 操作中释放的页数。

nrows 列和 npused 列可能无法准确反映由外部表使用的行数和数据页

数,除非在创建外部表时指定了 NUMROWS 子句。请参阅《 GBase 8s V8.5 管

理员手册》以获取更多信息。

systables 表有两行用来存储有关数据库语言环境的信息:GL_COLLATE

GBase 8s V8.7 安全数据库 SQL 参考指南

南大通用数据技术股份有限公司 -78-

(其 tabid 为 90)和 GL_CTYPE(其 tabid 为 91)。要查看这些行,请输入

以下 SELECT 语句:

SELECT * FROM systables WHERE tabid=90 OR tabid=91;

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

X社区推广