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 管理员指南。