DB2 9.7:利用自动维护策略自动回收多维集群(MDC)表中的空间
2010-04-13 00:00:00 来源:WEB开发网可以看到,每次插入一行具有不同的 c1 值的数据都会占用一个扩展数据块(2240 - 2208 = 32 page , 2208 - 2112 = 96 page ),4 条具有不同 c1 值的数据共占用 4 个数据块。如果我们接着向表中插入具有相同 c1 值的数据则将被放置相应的块中,例如 (1,2) 将被放置到与 (1,1) 相同的块或扩展数据块中,直至当前的块没有足够的空间而占用新的扩展数据块。
当前表空间 tbs1 中空闲的页为 2112 个。将之前插入的 4 条数据全部删除然后再次查看表空间,表空间 tbs1 空闲的页仍为 2112 个,也即是说虽然表中的数据全部删除了但是之前已经占用了的扩展数据块没有释放,如清单 4 所示。
清单 4. 删除数据
db2 "delete from mdctab"
DB20000I The SQL command completed successfully.
db2 list tablespaces show detail
Used pages = 416
Free pages = 2112
手动释放 MDC 中的空间
现在使用 REORG 的 RECLAIM EXTENTS ONLY 选项来释放这些扩展数据块。对整个表进行不带选项的 REORG 也可以释放空闲空间,但必须是脱机执行,而使用 RECLAIM EXTENTS ONLY 选项则可以联机执行,如清单 5 所示。
清单 5. 回收 MDC 中的空闲空间
db2 reorg table mdctab allow write access
SQL0104N An unexpected token "write" was found following "ALLOW". Expected tokens may
include: "NO". SQLSTATE=42601
db2 reorg table mdctab RECLAIM EXTENTS ONLY allow write access
DB20000I The REORG command completed successfully.
Used pages = 320
Free pages = 2208
更多精彩
赞助商链接