使用 ALTER TABLE 语句的 MODIFY EXTENT SIZE 子句更改数据库中表的第一个 extent 的大小。
您不能使用该 MODIFY EXTENT SIZE 子句更改这些 extent 的大小:
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
kilobytes | 在此为该表的第一个 extent 分配的长度(以千字节) | 规范不可以是变量,而且(4(页大小))≤ 千字节 ≤ (chunk 大小) | 表达式 |
最小大小是磁盘页大小的 4 倍。例如,在一个 2 千字节页的系统上,最小长度是 8 千字节。最大长度等于 chunk 大小。
ALTER TABLE customer MODIFY EXTENT SIZE 32;
当您更改第一个 extent 的大小时,数据库服务器记录系统目录和分区页的更改,但是在重建表或创建分区和分片时,只记录实际的更改。
例如,如果表拥有一个 8 千字节大小的首个 extent,且您使用 ALTER TABLE 语句将其大小修改为 16 千字节,则数据库不会删除当前首个 extent 并按新的大小重建它。而是,只有在服务器在该表上重建聚集索引或从该表拆离分片操作之后重建此表时,第一个 16 千字节大小的 extent 才会生效。
如果一个不带 REUSE 选项的 TRUNCATE TABLE 子句在带有 MODIFY EXTENT SIZE 子句的 ALTER TABLE 语句之前执行,则第一个 extent 的大小不能发生改变。
如果在 dbspace 中现有表含有数据,并已为该表分配了第一个和第二个 extent ,则您将不能更改第一个和第二个 extent 的大小。如果您想要更改现有 extent 的大小,则必须删除此表,用包含希望的值的强有力的子句重建该表,并再次加载数据。
您可以同时更改第一个和第二个 extent 的大小。以下示例指定更改第一个和第二个 extent 的大小:
ALTER TABLE customer MODIFY EXTENT SIZE 32 NEXT SIZE 32
第一个和下一个 extent 的大小记录在 PNSIZES 逻辑日志记录中。