Posted on 2010-04-15 23:47
Prayer 閱讀(328)
評論(0) 編輯 收藏 引用 所屬分類:
DB2
DB2 V8.2(及之前版本)的一些技術允許將數據拆分成更小的“塊(chunk)”,以獲得更大的查詢并行度,消除查詢中出現的分區,并幫助提高性能。如前面所討論的,MDC允許DB2安排磁盤上的數據,使具有相同維列值的行在塊(一組頁)中存儲在一起。通過使用這種技術,用于搜索具有特定維值的行的查詢把所有其他分區排除在掃描之外,只有符合條件的行才會被訪問。
類似地,數據庫分區特性可以拆分一組表,使得一部分數據存放在一個數據在分區上。數據庫分區可以處于不同的服務器上,這樣一來,大型的掃描可以使用多個服務器的處理能力。
DB2 V9還引入了一種新形式的分區,該特性被稱為表分區(table partitioning),它允許將單個表擴展到多個表空間上。
這種新的分區功能有很多優點,包括創建表的語法更簡單。下面是一個簡單的示例,創建一個分區表,用于將24個月的數據存儲在4個表空間上的24個分區中:
CREATE TABLE fact
(txn_id char(7), purchase_date date, ...)
IN tbsp1, tbsp2, tbsp3, tbsp4
PARTITION BY RANGE(purchase_date)
( STARTING FROM('2005-01-01')
ENDING('2006-12-31')
EVERY1MONTH )
快速添加或刪除數據范圍
表分區的另一個優點是,當您分離(detach)一個分區時,可以得到一個獨立的表,這個表包含了那個分區的內容。您可以將一個分區從一個表中分離出來,然后對那個新分離出來的分區做一些處理,新分離出來的分區現在實際上是一個物理表。例如,您可以歸檔那個表,將它移到第三存儲,將它復制到另一個位置,或者做您想做的任何事情。DB2 V9將異步地清除那個分區表上的任何索引鍵,而不影響正在運行的應用程序。
與添加一個新分區類似,您只需以和分區表相同的定義創建一個表,為之裝入數據,然后將那個分區附加(attach)到主分區表上,如下所示:
ALTER TABLE FACT_TABLE ATTACH PARTITION
STARTING '01-01-2007'
ENDING '01-31-2007'
FROM TABLE FACT_NEW_MONTH
關于表分區的詳細介紹,請參見《DB2數據庫性能調整和優化》中“第4章:數據庫物理設計和邏輯設計”的內容。