建立資料庫時 DB2 自動建立:
| 表空間 | 類型 | 用途 | 可刪除/重建 |
|---|---|---|---|
| SYSCATSPACE | DMS | 系統目錄表/視圖(元資料) | 否 |
| TEMPSPACE1 | SMS | 查詢排序、臨時表等中間結果 | 否 |
| USERSPACE1 | DMS | 使用者表、索引、LOB 等預設儲存 | 是 |
| 維度 | SMS (System Managed Space) | DMS (Database Managed Space) |
|---|---|---|
| 空間管理者 | 作業系統檔案系統 | DB2 資料庫管理器 |
| 配置方式 | 按需動態擴展 | 建立時預先配置容器大小 |
| 初始設定複雜度 | 低 | 高 |
| 管理考量因素 | 少 | 多(容器大小、擴展、條帶化等) |
| 效能上限 | 受限於檔案系統 | 經調優可超越 SMS,控制資料佈局 |
| 適用場景 | 開發/測試、小型資料庫、臨時表空間 | 生產核心業務、大型資料倉庫、高並發 OLTP |
經驗法則:生產環境核心表空間**優先選 DMS**;TEMP 表空間可用 SMS 簡化管理。
IBMDEFAULTBP:4KB 頁面、250 頁(約 1MB),通常嚴重不足BUFFERPOOL 子句Create New Tablespace → 名稱 TBSP_DATA1、註解、Regular 類型Add → 類型 File、路徑 C:\DB2\NODE0000\TESTDB\TBSP_DATA1_C01、大小 5120 頁(20MB)TBSP_DATA1_C02 實現條帶化(圖 11-12)Show SQL 存檔 crt_tbsp.clp → FinishCONNECT TO HELLOWLD;
CREATE LARGE TABLESPACE TBSP_INDEX1 PAGESIZE 4 K
MANAGED BY DATABASE
USING (
FILE 'C:\DB2\NODE0000\HELLOWLD\TBSP_INDEX1_C01' 5120,
FILE 'C:\DB2\NODE0000\HELLOWLD\TBSP_INDEX1_C02' 5120
)
EXTENTSIZE 8
OVERHEAD 10.5
PREFETCHSIZE 16
TRANSFERRATE 0.14
BUFFERPOOL IBMDEFAULTBP;
COMMENT ON TABLESPACE TBSP_INDEX1 IS 'tablespace to hold index data';
CONNECT RESET;
執行:db2 -tvf crt_tbsp.clp(-tvf:終端機回顯、驗證語法、從檔案執行)
| 主題 | 建議 |
|---|---|
| 索引/LOB/XML 分離 | 建立專用表空間 TBSP_INDEX、TBSP_LOB、TBSP_XML,CREATE TABLE ... INDEX IN TBSP_INDEX LONG IN TBSP_LOB |
| 容器條帶化 | 每表空間 2~4 個容器分散於不同物理磁碟/LUN,Extent Size 8~32 頁 |
| 自動儲存 | DB2 9.7+ 支援 MANAGED BY AUTOMATIC STORAGE,簡化容器管理 |
| 頁面大小選擇 | OLTP 多用 4K/8K;資料倉庫大掃描考慮 16K/32K 減少 I/O 次數 |
| 監控指標 | SNAPSHOT_TABLESPACE:POOL_DATA_P_READS、POOL_ASYNC_DATA_READS、PREFETCH_WAIT_TIME |
Control Center → Show Related Objects 可列出 SYSIBM schema 下所有目錄表/索引。常用查詢:
-- 查看表空間容器
SELECT * FROM SYSCAT.TABLESPACES WHERE TBSPACE='SYSCATSPACE';
SELECT * FROM SYSCAT.CONTAINERS WHERE TBSPACEID=0;
表空間是 DB2 儲存層的邏輯骨架。**SMS 簡單、DMS 強大**;緩衝池與頁面大小決定 I/O 效率上限;容器條帶化與索引/LOB 分離是生產環境標準動作。善用 Control Center 視覺化配置產生 SQL 腳本,再以命令列批次部署,實現「所見即所得」的儲存架構交付。