压缩、重新打包或压缩并重新打包表或分段时,可将可用空间返还给数据库空间(收缩空间);也可在不压缩或重新打包的情况下单独返还可用空间。 返还可用空间将减小分段或表的总大小。
可在不影响表的分配策略的情况下,安全收缩整个表。例如,如果有一个分段表,一周的每一天都有一个分段,并且还有许多预分配的分段供将来使用,那么可在不影响该分配策略的情况下收缩该表。如果该表为空,GBase 8s 将把该表收缩为创建该表时指定的初始扩展数据块大小。
可以使用 ALTER TABLE 语句的 MODIFY EXTENT SIZE 子句来减小当前扩展数据块大小。执行此操作之后,可重新运行收缩操作,以便将第一个扩展数据块收缩为新扩展数据块大小。
先决条件:您必须可以连接到 sysadmin 数据库(缺省情况下只有用户 gbasedbt 可连接),并且必须是 DBSA。
要将可用空间返还给数据库空间:
以下示例显示了这样的一个命令:指示 GBase 8s 收缩所有者为“bob”的“music”数据库内名为“opera”的表。
EXECUTE FUNCTION task("table shrink","opera","music","bob");以下示例显示了这样的一个命令:指示 GBase 8s 重新打包和收缩分区号为 14680071 的分段。
EXECUTE FUNCTION task("fragment repack shrink," "14680071");