DB2 核心架構層級
DB2 採用階層式架構,自上而下包含四個核心層級:
- 實例:資料庫管理器的獨立執行環境。單一作業系統可同時運行多個實例 (不同於 Oracle 單實例架構),各實例擁有獨立配置、安全性、資源。
- 資料庫:定義於實例內,一個實例可包含多個資料庫。同實例下不同資料庫完全獨立,擁有各自的系統目錄表 (
SYSCAT.*)。
- 表空間:邏輯儲存容器,管理表、索引、大物件等物件的物理分佈。分兩種管理模式:
- DMS (Database Managed Space):由 DB2 管理容器 (檔案/裝置),可精確控制空間配置、擴展、條帶化,生產環境推薦。
- SMS (System Managed Space):由作業系統檔案系統管理,僅指定目錄路徑,無法新增容器,管理簡單但效能彈性較低。
建立時指定模式,事後無法轉換。
- 容器:資料的物理儲存位置,三種類型:
- Files:檔案系統檔案 (DMS 專用)。
- Devices:原始裝置/裸裝置 (DMS 專用),繞過檔案系統 I/O,效能最佳。
- Directories:目錄路徑 (SMS 專用)。
表空間類型
| 類型 | 用途 | 必要性 |
| 系統目錄表空間 | 儲存系統目錄表 | 資料庫建立時自動建立 (SYSCATSPACE) |
| 系統暫存表空間 | 排序、雜湊連接、暫存表等中間結果 | 資料庫建立時自動建立 (TEMPSPACE1) |
| 使用者表空間 | 儲存使用者表、索引 | 建立表前必須存在 (USERSPACE1) |
| 使用者暫存表空間 | 全域暫存表 (DGTT) | 使用 DGTT 時需建立 |
資料庫效能關鍵因素
影響效能的四大資源,重要性遞減:
- 磁碟 I/O (90% 瓶頸):磁碟爭用為首要瓶頸。
- 記憶體:物理量足夠 + 參數正確配置 (緩衝池、排序堆、套件快取等)。
- CPU:多核心對複雜查詢平行處理有顯著幫助。
- 網路:屬環境因素,頻寬不足影響資料傳輸。
磁碟配置最佳實務
- 多顆小容量磁碟優於單顆大容量:分散 I/O 請求,降低爭用。
- 分離作業系統與資料庫磁碟:避免系統活動干擾資料庫 I/O。
- 採用 DMS 表空間:可精確控制容器配置。
- 建立多個表空間分散載入:
- 資料與索引放置不同表空間 (不同物理磁碟)。
- 熱點大表垂直拆分至多表空間,再用 View 聯合。
- 使用裸裝置:專用磁碟分區不格式化,直接交給 DB2 管理,消除檔案系統開銷。
- 系統暫存表空間極重要:記憶體不足時溢寫磁碟,頻繁發生,應放置最快磁碟。
- 資料置於磁碟內軌:外軌線速度較快,存取效能較好 (傳統機械硬碟適用)。
關鍵記憶體配置參數 (資料庫層級)
| 參數 | 說明 | 調整建議 |
| BUFFERPAGE / NPAGES | 緩衝池頁數 (所有物件共享)。NPAGES=-1 時由 BUFFERPAGE 控制。 | 設 NPAGES=-1 統一由 BUFFERPAGE 管理;依資料庫大小設定較大值 (預設極小)。 |
| SORTHEAP | 每個排序操作的私有記憶體 (非共享)。 | 不宜過大,否則並發排序易耗盡記憶體;建議 256~4096 頁。 |
| LOCKLIST | 鎖清單共享記憶體。 | 依並發鎖需求調整,避免鎖升級。 |
原則:緩衝池過小 → 過多物理 I/O;過大 → 作業系統分頁/換頁風險 + CPU 管理開銷。最佳點在「效能不再提升」的平衡處。