程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2並行索引的創建與維護的實際操作步驟

DB2並行索引的創建與維護的實際操作步驟

編輯:DB2教程

我們今天主要向大家講述的是DB2並行索引的創建與維護,DB2 UDB for iSeries 能將並行處理用於創建 SQL 索引與用鍵值標識的邏輯文件(即,CRTLF 命令)。DB2並行索引處理主要是通過如下方式完成的:

在邏輯上,將基本表分成多個數據段,接著每個進程為指定的表段構建索引鍵值。然後,將由每個並行進程執行的任務合並在一起來完成最後的索引結構。

正如您在 圖1 中所看到的那樣,使用附加的 CPU 資源可以充分減少創建索引所花費的時間。這種能力在非常大型的數據庫環境中或者在需要盡快重新創建索引的恢復方案下變得十分重要。

圖1. 啟用並行性之後極大地改進了索引構建時間

db2並行索引

DB2並行索引維護

索引維護的任務是更改索引鍵以反映對相關數據庫行的更改(通常通過 insert 、 update 或 delete 引起)。如果更改了客戶的訂單號或者新的客戶訂單添加到了數據庫,則必須更新所有包含訂單號列作為鍵字段的索引。索引的維護(或更新)影響與添加或更改訂單相關的整個事務時間。

如果數據庫行更改影響多個索引,那麼這些索引的維護會串行發生,缺省情況下,每次維護一個索引。首先,訂單號更改被傳播到 IndexA。對 IndexA 的更改完成之後,訂單號被傳播到 IndexB,依此類推。

並行索引維護涉及同時維護多個索引。客戶的訂單號更改可以被同時傳播到 IndexA 和 IndexB。這個並發索引維護處理減少了在整個數據庫中更改訂單號所花的總計時間。DB2並行索引維護用資源換取了時間,提高了給定應用程序或事務的 I/O 速度。

圖2 反映了可以通過並行維護多個索引達到的節省時間。在圖2中,新行被裝入具有多個索引的表中,並行索引維護將裝入時間縮短到二到三分之一。

圖 2. 當索引維護並行發生時裝入時間得到改進

db2並行索引

僅當應用程序處於下列情況時,DB2 UDB for iSeries 才使用DB2並行索引維護:

正在執行 8 行或者更多行的分塊插入(或寫)。

相關表上定義了兩個或兩個以上的索引。

一般可以在成批更新和數據倉庫裝入過程中找到分塊插入,所以並行索引維護將在這些環境中產生最顯著的性能效果。

技巧:如果裝入進程添加到表的新行多於該表行數的 20%,那麼通常建議在裝入之前先刪除索引,然後在裝入進程完成之後使用並行處理來重構索引。

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