返回首页

gbase数据、南大通用产品文档:GBase8sSYSTABLES

更新日期:2024年09月11日

systables 系统目录表对在数据库(包括系统目录的表和视图)中定义的每个表对象
(表、视图、同义词或 GBase 8s 中的序列)包含一行。
表 34. SYSTABLES 表列描述

类型
解释
tabname
VARCHAR(128)
表、视图、同义词或序列的名称
owner
CHAR(32)
表的所有者(系统目录表的用户
gbasedbt 和数据库表的 username)
partnum
INTEGER
物理存储位置代码
tabid
SERIAL
系统指定的顺序标识编号
rowsize
SMALLINT
最大行大小,以字节计 ( < 32,768)
ncols
SMALLINT
表中的列数
nindexes
SMALLINT
表的索引数
nrows
FLOAT
表中的行数
created
DATE
创建或上次修改表时的日期
version
INTEGER
改变表时更改的数字

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 66 -

类型
解释
tabtype
CHAR(1)
指示表对象类型的代码:
T = 表
E = 外部表
V = 视图
Q = 序列
P = 专用同义词
S = 公共同义词
(类型 S 在符合 ANSI 标准的数
据库中不可用。)
locklevel
CHAR(1)
表的锁定方式:
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 8s) RAW 表
EXTERNAL
32- 外部表
AUDIT
64 - 审计表属性 - FGA
AQT
128 - 视图是用于卸载 DWA 的 AQT
VIRTAQT
256 - 视图是虚拟 AQT
site
VARCHAR(128)
保留供将来使用

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 67 -

类型
解释
dbname
VARCHAR(128)
保留供将来使用
type_xid
INTEGER
sysxtdtypes.extended_id 中的代
码(对于类型表),或者 0(对于无
类型表)
am_id
INTEGER
访问方法代码(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 列的组合索引也
需要唯一值。
version 列包含创建新表时存储在 systables 中的已编码数字。当对表执行数据定义
的语句(例如,ALTER INDEX、ALTER TABLE、DROP INDEX 和 CREATE INDEX)时,此值的
一部分会增大。
在 flags 列中,ST_RAW 表示支持事务日志记录的数据库中的非日志记录永久表。
SQL_LOGICAL_CHAR 参数的设置会编码到描述 VERSION 表的行中的 systables.flags 列
值。注意此由系统生成的表的标识中有一个前导空格。
要确定数据库是否启用可将逻辑字符语义应用到字符列声明的 SQL_LOGICAL_CHAR 配
置参数,您可以执行以下查询:

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 68 -
SELECT flags INTO $value FROM 'gbasedbt'.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 管理员指南》以获取更多信息。
systables 表有两行用来存储有关数据库语言环境的信息:GL_COLLATE(其 tabid 为
90)和 GL_CTYPE(其 tabid 为 91)。要查看这些行,请输入以下 SELECT 语句:
SELECT * FROM systables WHERE tabid=90 OR tabid=91;

使用file://+abs_path 指定file_list 信息。多个file://+abs_path 之间使用逗号分隔。
URL 的定义格式如下:
file:// +abs_path[,file:// +abs_path]
示例
LOAD DATA INFILE ‘file:///var/ftp/pub/line5*.tbl, file:///home/gbase/lineitem.*’
INTO TABLE test.t FIELDS TERMINATED BY ‘|’;

对于集群层主要指合理设定表的分布属性,以及合理选择Hash 分布列。对于
GNode 层主要指压缩参数。