邏輯層:數據庫 → 表空間 → 表/索引。合理分佈容器於不同物理磁盤,顯著提升 I/O 並行度與存取效率。
| 特性 | SMS (System Managed Space) | DMS (Database Managed Space) |
|---|---|---|
| 容器形式 | OS 目錄 | 預分配文件 / 原始設備 |
| 空間分配 | 按需自動擴展 | 創建時固定,滿後手工擴容 |
| 管理複雜度 | 低 (OS 自動) | 高 (DBA 手工) |
| 性能 | 一般 | 優 (繞過文件系統緩存、可用原始設備) |
| 動態加容器 | 不支持 | 支持 (ALTER TABLESPACE ... ADD) |
| 索引/LOB 獨立放置 | 不支持 | 支持 (INDEX IN ... LONG IN ...) |
| 表跨表空間 | 不支持 | 支持 |
| 刪除後磁盤清理 | 目錄殘留需手工刪 | 文件/設備自動釋放 |
結論:生產核心業務首選 DMS;測試/輕量場景 SMS 省運維。
SYSCATSPACE、USERSPACE1)。TEMPSPACE1)。DECLARE GLOBAL TEMPORARY TABLE 存儲,非默認創建,需額外建立。CREATE TABLESPACE RESOURCE MANAGED BY SYSTEM USING ('d:\acc_tbsp','e:\acc_tbsp','f:\acc_tbsp');
DROP TABLESPACE RESOURCE; -- 目錄殘留需手工清理
-- 創建:兩個 5000 頁文件容器 (4K 頁 = 20MB/容器)
CREATE TABLESPACE RESOURCE MANAGED BY DATABASE
USING (FILE 'd:\db2data\acc_tbsp' 5000, FILE 'e:\db2data\acc_tbsp' 5000);
-- 加容器
ALTER TABLESPACE RESOURCE ADD (FILE 'f:\db2data\acc_tbsp' 5000);
-- 縮/擴容器 (RESIZE 絕對值 / EXTEND 相對增量)
ALTER TABLESPACE RESOURCE RESIZE (FILE 'd:\db2data\acc_tbsp' 8000, ...);
ALTER TABLESPACE RESOURCE EXTEND (FILE 'd:\db2data\acc_tbsp' 1000, ...);
-- 注意:數據已滿時 RESIZE 縮小會報錯
-- 刪除:自動清理文件
DROP TABLESPACE RESOURCE;
CREATE TABLESPACE RESOURCE MANAGED BY DATABASE
USING (DEVICE '/dev/rdblv6' 10000, DEVICE '/dev/rdblv7' 10000, DEVICE '/dev/rdblv8' 10000);
-- 前提:邏輯卷已存在,實例擁有者與 SYSADM 組有寫權限
-- 系統臨時 (SMS)
CREATE SYSTEM TEMPORARY TABLESPACE tmp_tbsp MANAGED BY SYSTEM USING ('d:\tmp_tbsp','e:\tmp_tbsp');
-- 用戶臨時 (DMS)
CREATE USER TEMPORARY TABLESPACE usr_tbsp MANAGED BY DATABASE
USING (FILE 'd:\db2data\user_tbsp' 5000, FILE 'e:\db2data\user_tbsp' 5000);
RENAME TABLESPACE RESOURCE TO RES1; -- 目錄條目自動級聯更新
CREATE TABLE T1 (A INT) IN RESOURCE; -- 顯式指定表空間