DB2 9.7:利用自动维护策略自动回收多维集群(MDC)表中的空间
2010-04-13 00:00:00 来源:WEB开发网MDC 以及空间回收简介
MDC 是在 DB2 V8 中引入的,通过它可以在物理上将在多个维上具有类似值的行聚集在一起放在磁盘上。这种聚集能为常见分析性查询提供高效的 I/O。例如对于 Product=car,Region=East,并且 SaleMonthYear = Jan09 的所有行,可以将它们存储在相同的存储位置,即所谓的块(block)。一个块的大小等于表空间的扩展数据块(extent)大小,扩展数据块是磁盘上的一组连续页,所以将这些具有类似值的行在物理上是存放在连续的数据页上。
在 MDC 表中,块映射(block map)会跟踪属于这个表的所有扩展数据块,并且指示哪些块或扩展数据块上包含数据以及哪些块或扩展数据块上没有包含数据。包含数据的块标记为“正在使用”(“IN USE”)。每当发生删除或转出时,相应的块条目不再标记为“正在使用”,而是被释放以供 MDC 表复用。但是表空间中的其他对象无法使用这些扩展数据块。
可以通过重组 MDC 表来从 MDC 表释放这些可用数据扩展数据块。在 DB2 9.7 之前只能在完全脱机的情况进行重组,在 DB2 9.7 中开始支持联机对 MDC 进行重组以释放扩展数据块。DB2 9.7 中的 REORG TABLE 命令增加了 RECLAIM EXTENTS ONLY 选项,可以使用这个选项来释放 MDC 表专用的扩展数据块,并且使该空间可供表空间内其他数据库对象使用。该选项还允许控制在释放扩展数据块期间对 MDC 表的并行访问,写访问权限为缺省访问权限,还可选择读访问权限和无访问权限来控制并行访问。
除了使用 REORG TABLE 命令来释放扩展数据块,也可以使用 db2Reorg API 来回收扩展数据块。
另外,从 MDC 表释放扩展数据块只支持在 DMS 表空间。
自动维护简介
更多精彩
赞助商链接