五大表空間類型
| 類型 | 用途 | 預設名 | 備註 |
| 目錄 | 系統目錄表 | SYSCATSPACE | 建庫自動建立 |
| 正規 | 永久資料 (表/索引/LOB) | USERSPACE1 | 可分離表與索引至不同表空間 |
| 長整數 | LOB/LONG | - | **僅 DMS**,支援 >255 行/頁 |
| 系統臨時 | 排序/重組/建索引/連接中間結果 | TEMPSPACE1 | 每庫至少一個 |
| 使用者臨時 | DGTT (宣告全域暫存表) | - | 非預設,需手動建立 |
SMS vs DMS 管理差異
| 面向 | SMS | DMS |
| 容器 | 目錄 | 檔案/裸裝置 (預分配) |
| 空間增長 | OS 自動 | 手動 ADD/RESIZE/EXTEND |
| I/O 控制 | OS 緩衝 | DB2 直接管理 |
| 容器刪除 | 不支援 | 支援 (V8+) |
| 效能 | 一般 | 優 (可條帶、預取、AUTORESIZE) |
容器操作指令
-- SMS 建立
CREATE TABLESPACE TS_SMS MANAGED BY SYSTEM USING ('/path1', '/path2');
-- DMS 建立
CREATE TABLESPACE TS_DMS MANAGED BY DATABASE
USING (FILE '/path/f1' 100M, DEVICE '/dev/raw1' 200M);
-- DMS 擴容
ALTER TABLESPACE TS_DMS ADD (FILE '/path/f3' 500M);
ALTER TABLESPACE TS_DMS EXTEND (ALL 1000);
ALTER TABLESPACE TS_DMS RESIZE (FILE '/path/f1' 200M);
-- DMS 縮容/刪除容器 (V8+)
ALTER TABLESPACE TS_DMS DROP (FILE '/path/f1');
ALTER TABLESPACE TS_DMS REDUCE (ALL 500);
最佳實踐
- 生產環境核心表空間 → DMS + AUTORESIZE + MAXSIZE
- 臨時表空間 → DMS (效能穩定) 或 SMS (零維護)
- LOB 密集 → 專用長表空間 (DMS) + 大頁面 (16K/32K)
- 定期
db2pd -tablespaces 監控使用率、Rebalance 狀態