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

DB2 表空間分類全解析:管理模式、功能類型與容器差異

     編輯:DB2 教學

表空間是 DB2 資料庫邏輯儲存層的核心概念,位於資料庫與表之間。合理規劃表空間能將資料分散至不同磁碟/路徑,大幅提升 I/O 平行度與存取效能。本文從管理模式、功能類型、容器特性三個維度完整解析。

一、按管理模式分類(核心區分)

SMS — System Managed Space(系統管理表空間)

  • 容器:作業系統檔案系統中的目錄
  • 空間管理:由 OS 自動管理,檔案隨資料增長自動擴展
  • 優點:管理簡單、無需預估大小、空間利用彈性高
  • 缺點:效能較 DMS 稍低(檔案系統額外開銷)、不支援原始裝置
  • 預設系統表空間:SYSCATSPACE (系統目錄)

DMS — Database Managed Space(資料庫管理表空間)

  • 容器:預分配的固定大小檔案 或 原始裝置 (raw device)
  • 空間管理:由 DB2 管理,建立時指定大小,不足時需手動 ALTER TABLESPACE EXTEND 或 ADD CONTAINER
  • 優點:效能較高(繞過檔案系統)、支援原始裝置、可精確控制配置
  • 缺點:管理較複雜、需容量規劃、擴充需人工介入
  • 預設使用者表空間:USERSPACE1

二、按功能類型分類

1. 規則表空間

  • 儲存使用者資料表、索引、系統目錄表
  • 預設:SYSCATSPACE (系統)、USERSPACE1 (使用者)
  • 可建立多個規則表空間分離熱/冷資料、不同業務模組

2. 大物件表空間

  • 專門儲存 LOB 資料 (BLOB/CLOB/DBCLOB)、XML 文件、長欄位資料
  • 可與基表資料分離至不同磁碟,避免大物件掃描影響主表效能

3. 系統暫存表空間

  • 儲存查詢處理過程中的內部暫存資料:排序、雜湊聯結、重組表、建立索引等
  • 預設:TEMPSPACE1
  • 建議:僅建立一個,頁面大小與多數表一致即可

4. 使用者暫存表空間

  • 儲存已宣告全域暫存表 (DGTT) 的資料
  • 資料庫建立時不預設建立,需手動建立
  • 使用 DGTT 的應用必須有可用的使用者暫存表空間

三、容器特性對照

特性SMSDMS (檔案)DMS (原始裝置)
容器形式目錄預分配檔案原始磁碟分割/邏輯卷
空間增長自動 (OS)手動 EXTEND/ADD手動 ADD (需預留分割)
效能良好優最佳 (無檔案系統開銷)
管理複雜度低中高
備份/還原檔案級頁面級/檔案級需特殊工具
適用場景開發/測試/中小型生產環境標準高效能/大型關鍵系統

四、頁面大小選擇

  • 4K:預設,適用多數 OLTP
  • 8K/16K/32K:大行寬度表、LOB 重、資料倉庫掃描密集場景
  • 同一資料庫可混用不同頁面大小表空間,但緩衝池需對應頁面大小

五、規劃建議

  1. 分離關注點:系統表、使用者資料、索引、暫存、LOB 各用獨立表空間
  2. 磁碟分離:不同表空間容器置於不同物理磁碟/RAID 組
  3. 選型原則:生產環境優先 DMS;開發/測試/簡單部署用 SMS
  4. 監控指標:定期檢視 db2pd -tablespaces 或 MON_GET_TABLESPACE 監控使用率、高水位線
  5. 自動儲存:DB2 10.5+ 支援 AUTOMATIC STORAGE YES 簡化 SMS/DMS 管理
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved