表空間是 DB2 儲存資料的邏輯容器,理解其管理模式(SMS/DMS)、四大類型與操作指令,是效能調校與容量規劃的基石。
| 特性 | SMS (System Managed Space) | DMS (Database Managed Space) |
|---|---|---|
| 容器形式 | 作業系統目錄 | 預分配檔案或裸裝置 |
| 空間管理 | OS 自動擴增/縮減 | DBA 手動管理,滿時需擴容 |
| 效能 | 較低(檔案系統額外開銷) | 較高(繞過檔案系統) |
| 適用場景 | 開發、測試、小型資料庫 | 生產、大型、高效能需求 |
USERSPACE1、SYSCATSPACE。TEMPSPACE1。DECLARE GLOBAL TEMPORARY TABLE 的資料。非預設建立,節點群組預設 IBMDEFAULTGROUP。-- Windows/OS/2 多目錄分散 I/O
CREATE TABLESPACE RESOURCE MANAGED BY SYSTEM
USING ('D:\ACC_TBSP','E:\ACC_TBSP','F:\ACC_TBSP');
-- UNIX 單目錄
CREATE TABLESPACE SMS8K PAGESIZE 8192 MANAGED BY SYSTEM
USING ('FSMS_8K_1') BUFFERPOOL BUFFPOOL8K;
-- Windows/OS/2
CREATE TABLESPACE RESOURCE MANAGED BY DATABASE
USING (FILE 'D:\DB2DATA\ACC_TBSP' 5000,
FILE 'E:\DB2DATA\ACC_TBSP' 5000);
-- UNIX 裸裝置
CREATE TABLESPACE RESOURCE MANAGED BY DATABASE
USING (DEVICE '/dev/rdblv6' 10000,
DEVICE '/dev/rdblv7' 10000,
DEVICE '/dev/rdblv8' 10000)
OVERHEAD 24.1 TRANSFERRATE 0.9;
CREATE TABLESPACE PLANS MANAGED BY DATABASE
USING (DEVICE '/dev/hdisk0' 10000, DEVICE '/dev/n1hd01' 40000) ON NODE 1
USING (DEVICE '/dev/hdisk0' 10000, DEVICE '/dev/n3hd03' 40000) ON NODE 3
USING (DEVICE '/dev/hdisk0' 10000, DEVICE '/dev/n5hd05' 40000) ON NODE 5;
-- 系統臨時
CREATE SYSTEM TEMPORARY TABLESPACE TMP_TBSP MANAGED BY SYSTEM
USING ('D:\TMP_TBSP','E:\TMP_TBSP');
-- 使用者臨時
CREATE USER TEMPORARY TABLESPACE USR_TBSP MANAGED BY DATABASE
USING (FILE 'D:\DB2DATA\USER_TBSP' 5000,
FILE 'E:\DB2DATA\USER_TBSP' 5000);
-- 新增容器
ALTER TABLESPACE RESOURCE ADD (DEVICE '/dev/rhd9' 10000, DEVICE '/dev/rhd10' 10000);
-- 縮/擴容(僅 DMS)
ALTER TABLESPACE HISTORY RESIZE (DEVICE '/dev/rhd7' 2000, DEVICE '/dev/rhd8' 2000);
ALTER TABLESPACE HISTORY EXTEND (DEVICE '/dev/rhd11' 1000, DEVICE '/dev/rhd12' 1000);
注意:容器不可縮小,EXTEND 為在原大小基礎上增加。
RENAME TABLESPACE OLD_NAME TO NEW_NAME:不可重命名 SYSCATSPACE、前滾暫掛或前滾中表空間。DROP TABLESPACE:連同資料、容器、目錄項一併刪除,物件標記無效。需 COMMIT 後才能重用容器。SNAPSHOT TABLESPACE 使用率,預留 20% 以上閒置空間。