平行化

作業的元件 (例如資料庫查詢) 可以平行執行,以大幅加強效能。 作業、資料庫配置及硬體環境的本質都決定 Db2® 資料庫產品如何平行執行作業。

這些因素是相互關聯的。 當您使用資料庫的實體和邏輯設計時,請考量它們全部。 Db2 資料庫系統支援下列類型的平行化:
  • I/O
  • 查詢
  • 公用程式

輸入/輸出平行化

當表格空間有多個儲存器時,資料庫管理程式可以使用 平行 I/O。 平行 I/O 是指同時寫入或讀取兩個以上 I/O 裝置的程序; 它可以顯著提高傳輸量。

查詢平行化

查詢平行化有兩種類型: 查詢間平行化和查詢內平行化。

查詢間平行化 是指資料庫能夠同時接受來自多個應用程式的查詢。 每一個查詢都獨立執行,但資料庫管理程式會同時執行所有查詢。 Db2 資料庫產品一律支援這種類型的平行化。

內部查詢平行化 是指使用內部分割區平行化及/或分割區間平行化來同時處理單一查詢的部分。

分割區內平行化改進

內部分割區平行化 是指將查詢分成多個部分的能力。 部分 Db2 公用程式也會執行此類型的平行化。

分割區內平行化會將通常視為單一資料庫作業 (例如索引建立、資料庫載入或 SQL 查詢) 的部分細分為多個部分,其中許多或全部可以在單一資料庫分割區內平行執行。

圖 1 顯示可平行執行的查詢分成三個部分,傳回結果的速度比以序列方式執行查詢的速度更快。 這些碎片是彼此的複製品 若要使用分割區內平行化,您必須適當地配置資料庫。 您可以選擇平行化程度,或讓系統為您執行。 平行化程度代表平行執行的查詢片段數。

圖 1. 分割區內平行化改進
查詢的每一個片段會獨立執行,並在傳回結果之前先合併結果。

分割區間平行化 (interpartition parallelism)

分割區間平行化 是指在一部機器或多部機器上,跨分割資料庫的多個分割區將查詢分割成多個部分的能力。 平行執行查詢。 部分 Db2 公用程式也會執行此類型的平行化。

分割區間平行化會將通常視為單一資料庫作業 (例如索引建立、資料庫載入或 SQL 查詢) 的分割區細分為多個部分,其中許多或全部可以在一部機器或多部機器上分割資料庫的多個分割區之間平行執行。

圖 2 顯示可平行執行的查詢分成三個部分,傳回結果的速度比在單一資料庫分割區上以序列方式執行查詢的速度更快。

平行化程度主要取決於您建立的資料庫分割區數目,以及您定義資料庫分割區群組的方式。

圖 2. 分割區間平行化 (interpartition parallelism)
查詢分為數個資料庫分割區。 每一個資料庫分割區只會從其組件傳回資料。

同時內部分割區和分割區間平行化

您可以同時使用內部分割區平行化和分割區間平行化。 此組合提供平行化的兩個維度,導致處理查詢的速度更大幅增加。

圖 3. 同時分割區間和分割區內平行化
使用分割區內平行化來分割查詢,然後再依分割區間平行化來分割每一個片段。

公用程式平行化

Db2 公用程式可以利用分割區內平行化。 它們也可以利用分割區間平行化; 在存在多個資料庫分割區的情況下,公用程式會在每一個資料庫分割區中平行執行。

載入公用程式可以利用分割區內平行化及 I/O 平行化。 載入資料是一項 CPU 密集的作業。 載入公用程式利用多個處理器來執行諸如剖析及格式化資料等作業。 它也可以使用平行 I/O 伺服器將資料平行寫入儲存器。

在分割的資料庫環境中,透過在表格所在的每一個資料庫分割區上進行平行呼叫, LOAD 指令會利用內部分割區、內部分割區及 I/O 平行化。

在建立索引期間,資料的掃描及後續排序會平行進行。 Db2 系統會在建立索引時同時利用 I/O 平行化及內部分割區平行化。 這有助於在發出 CREATE INDEX 陳述式時、重新啟動期間 (如果索引標示為無效) ,以及資料重組期間,加速建立索引。

備份及還原資料是大量 I/O 連結的作業。 執行備份及還原作業時, Db2 系統會利用 I/O 平行化及內部分割區平行化。 備份會透過平行從多個表格空間儲存器讀取,並以非同步方式平行寫入多個備份媒體,來利用 I/O 平行化。