http://www.itokit.com/2011/0325/59467.html
【IT168 專稿】DB2 V9新增了表分區(qū)功能,因此對(duì)一些大表,我們?cè)贒B2 V9中不再需要分拆成小表,再用UNION ALL視圖的方式進(jìn)行
設(shè)計(jì),而是直接用分區(qū)表實(shí)現(xiàn)一些這些功能?表分區(qū)功能是一種數(shù)據(jù)組織方案,即,表數(shù)據(jù)根據(jù)一個(gè)或多個(gè)表列中的值分布到多個(gè)存儲(chǔ)對(duì)象(稱為數(shù)據(jù)分區(qū)或范圍)中?每個(gè)數(shù)據(jù)分區(qū)都是單獨(dú)存儲(chǔ)的?這些存儲(chǔ)對(duì)象可以在不同的表空間中,也可以在相同表空間中?由于表分區(qū)是DB2 V9新增的功能,所以很多用戶對(duì)其特性不是很了解,本文將重點(diǎn)介紹DB2 V9表分區(qū)功能,并通過(guò)實(shí)際的例子來(lái)幫助大家理解和提高?
簡(jiǎn)介
在DB2 V9之前,對(duì)一些大表,出于對(duì)性能和數(shù)據(jù)容量限制的考慮,我們通常會(huì)把大表分拆成一些小表,再用UNION ALL 視圖的方式進(jìn)行聯(lián)合起來(lái)?DB2 V9在數(shù)據(jù)容量方面有了重大突破,DMS 表空間的新缺省類型是“大型”,當(dāng)使用“大型”DMS表空間時(shí),單表的最大容量限制是16384G(Byte),而不再是以前的512 G(Byte)?DB2 V9新增了表分區(qū)功能,使得我們對(duì)大表的性能和數(shù)據(jù)容量的顧慮都不再存在?使用表分區(qū),能夠創(chuàng)建非常大的表,通過(guò)跨多個(gè)存儲(chǔ)器對(duì)象劃分表數(shù)據(jù),可顯著增大表,一個(gè)表最多可以有32K個(gè)數(shù)據(jù)分區(qū)?使用表分區(qū)分隔數(shù)據(jù)能夠避免掃描不相關(guān)的數(shù)據(jù),從而提高查詢處理性能?DB2優(yōu)化器從查詢操作中去除不相關(guān)的分區(qū)?
表分區(qū)功能是一種數(shù)據(jù)組織方案,根據(jù)一個(gè)或多個(gè)表列中的值將表數(shù)據(jù)劃分到多個(gè)稱為數(shù)據(jù)分區(qū)或范圍的存儲(chǔ)對(duì)象中?每個(gè)數(shù)據(jù)分區(qū)都是單獨(dú)存儲(chǔ)的?這些存儲(chǔ)器對(duì)象可位于不同的表空間和/或相同的表空間中?跨多個(gè)存儲(chǔ)器對(duì)象對(duì)表數(shù)據(jù)進(jìn)行分區(qū)的能力為
數(shù)據(jù)庫(kù)管理員提供了更高的可伸縮性和靈活性,同時(shí)提高了性能和控制能力?表分區(qū)可大幅度減少管理龐大
數(shù)據(jù)庫(kù)所需的維護(hù)工作,并可有效增加單個(gè)表的潛在大小?表和索引自動(dòng)重組的新策略選項(xiàng)使您能夠更有效地管理DB2
服務(wù)器對(duì)表和索引的自動(dòng)重組?表分區(qū)使您能夠定義表數(shù)據(jù)的范圍,以便單獨(dú)保存每個(gè)范圍?例如,您可基于表中的日期列,按月對(duì)表進(jìn)行分區(qū)?每個(gè)范圍(稱為數(shù)據(jù)分區(qū))與單個(gè)存儲(chǔ)器對(duì)象對(duì)應(yīng)?這些存儲(chǔ)器對(duì)象可位于不同的表空間和/或相同的表空間中?由于可以對(duì)單個(gè)數(shù)據(jù)分區(qū)執(zhí)行管理任務(wù),將很耗時(shí)的維護(hù)操作分成一系列較小的操作來(lái)執(zhí)行,從而使管理工作更為靈活?例如,可備份和復(fù)原單個(gè)數(shù)據(jù)分區(qū)而不是整個(gè)表?DB2 V9新增的表分區(qū)功能增強(qiáng)了對(duì)索引位置的細(xì)化控制,可將索引置于不同表空間并單獨(dú)管理它們?使用 ALTER TABLE語(yǔ)句的 ATTACH PARTITION和DETACH PARTITION子句可進(jìn)行快速及方便的數(shù)據(jù)轉(zhuǎn)入或轉(zhuǎn)出?此功能在數(shù)據(jù)倉(cāng)庫(kù)環(huán)境中特別有用,在此環(huán)境中經(jīng)常需要裝入或刪除數(shù)據(jù)以運(yùn)行決策支持查詢?能夠?qū)⒈矸謪^(qū)與其他數(shù)據(jù)組織方案組合在一起?通過(guò)將表分區(qū)與數(shù)據(jù)分區(qū)功能(DPF)一起使用,可跨數(shù)據(jù)庫(kù)分區(qū)均勻地分布數(shù)據(jù)范圍,以利用 DPF 的查詢內(nèi)并行性和數(shù)據(jù)庫(kù)分區(qū)負(fù)載均衡功能?將表分區(qū)與多維集群(MDC)一起使用時(shí),能夠?qū)ν槐頂U(kuò)展數(shù)據(jù)塊中在多個(gè)維上具有類似值的行進(jìn)行分組?
由于表分區(qū)是DB2 V9新增的功能,所以很多用戶對(duì)其特性不是很了解,本文將重點(diǎn)介紹DB2 V9表分區(qū)功能,并通過(guò)實(shí)際的例子來(lái)幫助大家理解和提高?
我們將按照下列順序介紹表分區(qū):
1. 創(chuàng)建示例數(shù)據(jù)庫(kù)DB2TEST1,在示例數(shù)據(jù)庫(kù)上創(chuàng)建一個(gè)使用32K頁(yè)大小的緩沖池,創(chuàng)建3個(gè)DMS表空間,用來(lái)存放示例分區(qū)表的數(shù)據(jù),創(chuàng)建3個(gè)大型表空間(DMS),用來(lái)存放示例分區(qū)表的大型數(shù)據(jù),創(chuàng)建1個(gè)DMS表空間,用來(lái)存放示例分區(qū)表的索引
2. 使用自動(dòng)方式創(chuàng)建示例分區(qū)表
3. 使用手工方式創(chuàng)建示例分區(qū)表