程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2 V9.7 分區索引新特征之改進大型數據庫

DB2 V9.7 分區索引新特征之改進大型數據庫

編輯:DB2教程

此文章主要向大家描述的是DB2 V9.7 分區索引新特性之改進大型數據庫的實際操作性能的描述,其中主要包括如何正確的使用與管理分區索引,還有分區索引改進大型數據庫性能的實際操作步驟。

簡介

分區索引partitioned index)是 DB2 V9.7 中的新特性,在本文中將介紹什麼是分區索引,如何創建和管理DB2 V9.7 分區索引,分區索引如何改進大型數據庫性能,讀者將獲得對分區索引的第一手體驗。每個DB2 V9.7 分區索引由多個索引分區index partition)組成,每個索引分區只對相應的數據分區data partition)的數據作索引。

開始之前

在開始討論分區索引之前我們有必要復習一下 DB2 的表分區特性,這一特性是在 DB2 V9 引入的,developerworks 上的這篇文章 “ DB2 9 表分區 - 改進大型數據庫的管理” 是一個很好的參考。

表分區是一種數據組織模式,在這種模式中,數據將以一個或多個表列的值為依據,分割到多個稱為數據分區或范圍)的存儲對象中。每一個數據分區被分別存儲。這些存儲對象可以位於不同的表空間中,可以位於相同的表空間中,也可能是這兩種情況的組合。

表分區特性改進了大型數據庫的管理,用戶可以靈活的放置索引,在圖 1 中,在分區表上建立了兩個索引,每個索引分別放置在一個表空間中。但是我們同時也看到,每一個索引中的鍵值指向了所有數據分區的數據庫,在表數據量很大的情況索引也會變得很大。

圖 1. DB2 v9 中表分區特性及其索引

圖 1. DB2 v9 中表分區特性及其索引

另外,表分區特性使得用戶可以使用 ALTER TABLE … ATTACH PARTITION 命令和 DETACH PARTITION 命令輕易的實現表數據的轉入 roll-in )和轉出 roll-out) ,這兩個操作都不需要有任何數據的移動,從而很大的提高性能。同時我們也看到,這兩個操作之後需要對索引進行維護,例如 ATTACH 一個新的分區之後需要為這個分區的新數據進行索引, DETACH 一個分區之後需要將索引中相應的鍵值清除。

分區索引簡介

在 DB2 V9.7 之前,分區表上的索引是不能分區的。由於分區表很多情況都是應用在數據倉庫環境中,當數據量很大的時候,索引也隨之變得很大,從而導致一些的性能上降低。

在 DB2 V9.7 中,索引也可以是分區的,這一特性稱之為分區索引partitioned index)。DB2 V9.7 分區索引由多個索引分區index partition)組成,每個索引分區中的鍵值指向相應的唯一一個數據分區data partition)的數據,系統創建的索引或者用戶的創建的索引都可以是分區索引。

在圖 2 中,在一個有 4 個數據分區的分區表上建立了三個索引,其中 index1 和 index2 是分區索引,分別由 4 個索引分區組成,index3 是非分區索引nonpartitioned index),或者稱之為全局索引global index),相對應的,我們可以把分區索引稱為本地索引local index)。

圖 2. DB2 V9.7 中的分區索引

圖 2. DB2 V9.7 中的分區索引

分區索引帶來的一個顯著優勢在於,在使用 ALTER TABLE ATTACH PARTITION 和 DETAICH PARTITION 命令進行數據的轉入 roll-in )和轉出 roll-out) 時, 使用分區索引能夠很大程度的提高性能。

在 DB2 V9.7 中,以下類型的索引不能是分區索引,只能是非DB2 V9.7 分區索引。

XML 索引

空間數據 spatial data )索引

MDC 塊索引 block index ,系統生成索引)

XML path index 系統生成索引)

准備工作

在開始之前,我們先創建一個新的數據庫名字叫做 MYDB,如清單 1 所示。當然用已經存在的數據庫也可以,但是為了能夠簡化環境,清楚的、逐步的進行我們接下來的討論,建議使用一個全新的數據庫。

本文中所有操作都是在 LinuxAMD64 平台上的 DB2 V97 版本進行,V97 版本之前的版本都沒有DB2 V9.7 分區索引特性。

清單 1. 創建數據庫

db2 CREATE DB mydb

創建數據庫之後我們創建若干個表空間,如清單 2 所示。

清單 2. 創建表空間

  1. CREATE TABLESPACE TbspT MANAGED BY DATABASE using (FILE 'tspT' 4 M) AUTORESIZE YES;   
  2. CREATE TABLESPACE TbspX MANAGED BY DATABASE using (FILE 'tspX' 4 M) AUTORESIZE YES;   
  3. CREATE TABLESPACE TbspD MANAGED BY DATABASE using (FILE 'tspD' 4 M) AUTORESIZE YES;   
  4. CREATE TABLESPACE TbspY MANAGED BY DATABASE using (FILE 'tspY' 4 M) AUTORESIZE YES;   
  5. CREATE TABLESPACE TbspW MANAGED BY DATABASE using (FILE 'tspW' 4 M) AUTORESIZE YES;   

完整內容的學習,請訪問:

http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0907haoqy/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved