HFS 表是建立在 HTS 表空间上的。在创建一个 HFS 表之后,数据库会在指定的 HTS 表空间目录下创建一系列的目录及文件,文件系统结构如图所示
语法格式。
CREATE HUGE TABLE <表名定义> <表结构定义>[子句>] [子句 1>][<压缩子句] [子句>][<日志属性>];
参数说明见下表
用 SQL 命令创建 HFS 表。
【例 】以用户 SYSDBA 登录,在 HTS1 表空间创建 HFS 表 ORDERS,包含 ORDERID、TOTALPRICE、ORDERDATE、ORDERCOMMENT 等字段,表的区大小为 65536 行,文件大小为 64MB,指定所在的表空间为 HTS1,做完整镜像。ORDERCOMMENT 字段不做统计信息,其他字段都做统计信息,ORDERCOMMENT 字段按照最大压缩比压缩。
SQL> CREATE HUGE TABLE dmhr.orders (
orderid INT, totalprice FLOAT,
orderdate DATE,
ordercomment VARCHAR(79) STORAGE(STAT NONE)
)
STORAGE(SECTION(65536), FILESIZE(64), ON HTS1)
COMPRESS LEVEL 1(ORDERCOMMENT)
LOG ALL;
该 SQL 命令使用 HUGE 关键词来创建 HFS 表。前半部分是创建一般表的格式,创建了 ORDERS 表,该表包含 ORDERID、TOTALPRICE、ORDERDATE、ORDERCOMMENT 四个字段,并且 OERDERCOMMENT 字段不做统计信息。后半部分是设置存储格式,区大小为 65536 行,文件大小为 64MB,存储在 HTS1 表空间中,做完整镜像; ORDERCOMMENT 字段按最大压缩比压缩。
附加说明
① HFS 表操作时封锁粒度较大,且不支持多版本并发控制。
② HFS 表的插入、删除与更新操作处理都不能进行回滚。
③ 创建HFS表时仅支持定义NULL、NOT NULL、UNIQUE 约束以及PRIMARY KEY,后两种约束也可以通过 ALTER TABLE 的方式添加,但这两种约束不检查唯一性。
④ HFS 允许建立二级索引,其中 UNIQUE 索引不检查唯一性。
⑤ HFS 表不支持事务,没有事务的特性。
⑥ 不支持 SPACE LIMIT(空间限制)。
⑦ 不支持 IDENTITY 自增列。
⑧ 不支持大字段列。