表空間是資料庫與表之間的邏輯層,支援將資料分散存放於不同磁碟/路徑,提升 I/O 平行度與效能。
| 特性 | SMS (系統管理) | DMS (資料庫管理) |
|---|---|---|
| 容器形式 | 作業系統目錄 | 預分配檔案或裸裝置 |
| 空間管理 | OS 自動擴展 | 手動擴展/縮減 |
| 效能 | 一般 | 優於 SMS(大多數場景) |
| 動態增減容器 | 不支援 | 支援 |
| 索引/LOB 獨立表空間 | 不支援 | 支援 |
| 表分散多表空間 | 不支援 | 支援 |
| 按需分配空間 | 是 | 否 |
| 跨磁碟放置表空間 | 是 | 否(容器層級可跨磁碟) |
| 建立後修改Extent Size | 否 | 否 |
USERSPACE1、SYSCATSPACE。TEMPSPACE1,建議僅保留一個。DECLARE GLOBAL TEMPORARY TABLE) ,非預設建立。create tablespace tbsp_name managed by system using ('path1', 'path2')
create tablespace tbsp_name managed by database using (file 'path1' 5000, file 'path2' 5000)
create tablespace tbsp_name managed by database using (device '/dev/rdblv6' 10000, device '/dev/rdblv7' 10000)
create tablespace RESOURCE managed by system using ('d:\acc_tbsp','e:\acc_tbsp','f:\acc_tbsp') → 三磁碟各建目錄與 SQLTAG.NAM。drop tablespace RESOURCE → 目錄殘留需手動刪除。create tablespace RESOURCE managed by database using (file 'd:\db2data\acc_tbsp' 5000, file 'e:\db2data\acc_tbsp' 5000) → 各產生 20MB 檔案。alter tablespace RESOURCE add (file 'f:\db2data\acc_tbsp' 5000)。alter tablespace RESOURCE resize (file 'd:\...' 8000, file 'e:\...' 8000, file 'f:\...' 8000) → 直接設定新大小,縮小受限於已用空間。alter tablespace RESOURCE extend (file 'd:\...' 1000, file 'e:\...' 1000, file 'f:\...' 1000) → 在原基礎上各增 1000 頁。drop tablespace RESOURCE → 目錄與檔案同步自動刪除。create tablespace RESOURCE managed by database using (device '/dev/rdblv6' 10000, device '/dev/rdblv7' 10000, device '/dev/rdblv8' 10000) → 需預先建立裝置並授權。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)。rename tablespace RESOURCE to RES1 → 系統目錄自動更新,無需手動處理物件引用。create table T1 (abc int) in RESOURCE。