EXTENT SIZE 选项

EXTENT SIZE 选项可以定义分配到该表的存储 extent 的大小。
EXTENT SIZE 选项
元素 描述 限制 语法
first_kilobytes 表的第一个 extent 的长度,单位是千字节;缺省值是 16。 必须返回正整数;最大值是 chunk 大小 表达式
next_kilobytes 每个后继 extent 的长度,单位是千字节;缺省值是 16。 必须返回正整数;最大值是 chunk 大小 表达式

用法

first_kilobytes 的最小长度(和 next_kilobytes 的)是您系统的磁盘页大小的四倍。例如,如果您有 2 千字节大小的页的系统,则最小长度是 8 千字节。

如果 CREATE TABLE(或 CREATE TEMP TABLE)语句不包含 IN dbspace 子句,则没有 EXTENT SIZE 规范,且没有 NEXT SIZE 规范,且不会为此表分片存储,直到向表中插入至少一条数据行。第一个 extent 的缺省大小不是 16 千字节就是4 页面。

下个示例指定第一个 extent 大小为 20 千字节,并允许其余的 extent 使用缺省大小:
CREATE TABLE emp_info
          (
          f_name     CHAR(20),
          l_name     CHAR(20),
          position   CHAR(20),
          start_date DATETIME YEAR TO DAY,
          comments   VARCHAR(255)
          )
          EXTENT SIZE 20; 

如果表中没有数据,则您可以使用 SQL 的 ALTER TABLE MODIFY EXTENT SIZE 或 ALTER TABLE MODIFY NEXT SIZE 语句更改此空表的第一个 extent 和随后的 extent 的大小。然而,对于包含一行或多行的表,并不支持这些操作并不支持 。有关 ALTER TABLE 语句的这些选项的更多信息,请参阅 MODIFY EXTENT SIZE 子句MODIFY NEXT SIZE 子句

如果需要修改表的 extent 的大小,您可以在生成的卸装表的模式文件中修改 extent 和下一个 extent 大小。例如,要使数据库更加有效率,您可以卸装一个表,在模式文件中修改 extent 的大小,接着创建并装入新表。有关如何优化 extent 的信息,请参阅 GBase 8s 管理员指南