首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 UDB V8.1 管理學習筆記 (一) - 核心架構與效能基礎

     編輯:DB2 教學

DB2 核心架構層級

DB2 採用階層式架構,自上而下包含四個核心層級:

  1. 實例:資料庫管理器的獨立執行環境。單一作業系統可同時運行多個實例 (不同於 Oracle 單實例架構),各實例擁有獨立配置、安全性、資源。
  2. 資料庫:定義於實例內,一個實例可包含多個資料庫。同實例下不同資料庫完全獨立,擁有各自的系統目錄表 (SYSCAT.*)。
  3. 表空間:邏輯儲存容器,管理表、索引、大物件等物件的物理分佈。分兩種管理模式:
    • DMS (Database Managed Space):由 DB2 管理容器 (檔案/裝置),可精確控制空間配置、擴展、條帶化,生產環境推薦。
    • SMS (System Managed Space):由作業系統檔案系統管理,僅指定目錄路徑,無法新增容器,管理簡單但效能彈性較低。

    建立時指定模式,事後無法轉換。

  4. 容器:資料的物理儲存位置,三種類型:
    • Files:檔案系統檔案 (DMS 專用)。
    • Devices:原始裝置/裸裝置 (DMS 專用),繞過檔案系統 I/O,效能最佳。
    • Directories:目錄路徑 (SMS 專用)。

表空間類型

類型用途必要性
系統目錄表空間儲存系統目錄表資料庫建立時自動建立 (SYSCATSPACE)
系統暫存表空間排序、雜湊連接、暫存表等中間結果資料庫建立時自動建立 (TEMPSPACE1)
使用者表空間儲存使用者表、索引建立表前必須存在 (USERSPACE1)
使用者暫存表空間全域暫存表 (DGTT)使用 DGTT 時需建立

資料庫效能關鍵因素

影響效能的四大資源,重要性遞減:

  1. 磁碟 I/O (90% 瓶頸):磁碟爭用為首要瓶頸。
  2. 記憶體:物理量足夠 + 參數正確配置 (緩衝池、排序堆、套件快取等)。
  3. CPU:多核心對複雜查詢平行處理有顯著幫助。
  4. 網路:屬環境因素,頻寬不足影響資料傳輸。

磁碟配置最佳實務

  • 多顆小容量磁碟優於單顆大容量:分散 I/O 請求,降低爭用。
  • 分離作業系統與資料庫磁碟:避免系統活動干擾資料庫 I/O。
  • 採用 DMS 表空間:可精確控制容器配置。
  • 建立多個表空間分散載入:
    • 資料與索引放置不同表空間 (不同物理磁碟)。
    • 熱點大表垂直拆分至多表空間,再用 View 聯合。
  • 使用裸裝置:專用磁碟分區不格式化,直接交給 DB2 管理,消除檔案系統開銷。
  • 系統暫存表空間極重要:記憶體不足時溢寫磁碟,頻繁發生,應放置最快磁碟。
  • 資料置於磁碟內軌:外軌線速度較快,存取效能較好 (傳統機械硬碟適用)。

關鍵記憶體配置參數 (資料庫層級)

參數說明調整建議
BUFFERPAGE / NPAGES緩衝池頁數 (所有物件共享)。NPAGES=-1 時由 BUFFERPAGE 控制。設 NPAGES=-1 統一由 BUFFERPAGE 管理;依資料庫大小設定較大值 (預設極小)。
SORTHEAP每個排序操作的私有記憶體 (非共享)。不宜過大,否則並發排序易耗盡記憶體;建議 256~4096 頁。
LOCKLIST鎖清單共享記憶體。依並發鎖需求調整,避免鎖升級。

原則:緩衝池過小 → 過多物理 I/O;過大 → 作業系統分頁/換頁風險 + CPU 管理開銷。最佳點在「效能不再提升」的平衡處。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved