DB2 V8中引入的MDC
本文將為您介紹DB2 V8 中引入的MDC表,在MDC表中,塊映射(block map)會跟蹤屬于這個表的所有擴展數(shù)據(jù)塊,并且指示哪些塊或擴展數(shù)據(jù)塊上包含數(shù)據(jù)以及哪些塊或擴展數(shù)據(jù)塊上沒有包含數(shù)據(jù)
MDC 是在 DB2 V8 中引入的,通過它可以在物理上將在多個維上具有類似值的行聚集在一起放在磁盤上。這種聚集能為常見分析性查詢提供高效的 I/O。例如對于 Product=car,Region=East,并且 SaleMonthYear = Jan09 的所有行,可以將它們存儲在相同的存儲位置,即所謂的塊(block)。一個塊的大小等于表空間的擴展數(shù)據(jù)塊(extent)大小,擴展數(shù)據(jù)塊是磁盤上的一組連續(xù)頁,所以將這些具有類似值的行在物理上是存放在連續(xù)的數(shù)據(jù)頁上。了解 MDC 相關內(nèi)容和細節(jié),可以查看 DB2 9.7 信息中心的“多維集群表”。
在 MDC 表中,塊映射(block map)會跟蹤屬于這個表的所有擴展數(shù)據(jù)塊,并且指示哪些塊或擴展數(shù)據(jù)塊上包含數(shù)據(jù)以及哪些塊或擴展數(shù)據(jù)塊上沒有包含數(shù)據(jù)。包含數(shù)據(jù)的塊標記為“正在使用”(“IN USE”)。每當發(fā)生刪除或轉出時,相應的塊條目不再標記為“正在使用”,而是被釋放以供 MDC 表復用。但是表空間中的其他對象無法使用這些擴展數(shù)據(jù)塊。
可以通過重組 MDC 表來從 MDC 表釋放這些可用數(shù)據(jù)擴展數(shù)據(jù)塊。在 DB2 9.7 之前只能在完全脫機的情況進行重組,在 DB2 9.7 中開始支持聯(lián)機對 MDC 進行重組以釋放擴展數(shù)據(jù)塊。DB2 9.7 中的 REORG TABLE 命令增加了 RECLAIM EXTENTS ONLY 選項,可以使用這個選項來釋放 MDC 表專用的擴展數(shù)據(jù)塊,并且使該空間可供表空間內(nèi)其他數(shù)據(jù)庫對象使用。該選項還允許控制在釋放擴展數(shù)據(jù)塊期間對 MDC 表的并行訪問,寫訪問權限為缺省訪問權限,還可選擇讀訪問權限和無訪問權限來控制并行訪問。
除了使用 REORG TABLE 命令來釋放擴展數(shù)據(jù)塊,也可以使用 db2Reorg API 來回收擴展數(shù)據(jù)塊。
另外,從 MDC 表釋放擴展數(shù)據(jù)塊只支持在 DMS 表空間。