資料庫管理空間(DMS)由資料庫引擎直接管理容器,空間預先分配,效能優於 SMS。基本建立語法如下:
CREATE TABLESPACE <名稱>
MANAGED BY DATABASE
USING (FILE '<路徑>' <大小>);
容器可為檔案或原始裝置,大小單位為頁(4KB/8KB/16KB/32KB),建立後須手動擴展或新增容器。
CREATE TABLESPACE RESOURCE
MANAGED BY SYSTEM
USING ('d:\acc_tbsp','e:\acc_tbsp','f:\acc_tbsp');
三個目錄分布於不同磁碟,OS 自動管理空間增長,適合開發/測試環境。
CREATE TABLESPACE RESOURCE
MANAGED BY DATABASE
USING (FILE 'd:\db2data\acc_tbsp' 5000,
FILE 'e:\db2data\acc_tbsp' 5000);
兩個 5000 頁(約 20MB)檔案容器,空間固定,生產環境常用。
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;
使用邏輯卷作為原始裝置容器,各 10000 頁。OVERHEAD(磁頭移動毫秒數)與 TRANSFERRATE(讀取一頁毫秒數)為優化器提供 I/O 成本模型參數,提升查詢計畫品質。注意:裝置必須預先存在,實例擁有者與 SYSADM 群組需具寫入權限。
CREATE TABLESPACE PLANS
MANAGED BY DATABASE
USING (DEVICE '/dev/HDISK0' 10000, DEVICE '/dev/n1hd01' 40000) ON NODE 1
(DEVICE '/dev/HDISK0' 10000, DEVICE '/dev/n3hd03' 40000) ON NODE 3
(DEVICE '/dev/HDISK0' 10000, DEVICE '/dev/n5hd05' 40000) ON NODE 5;
針對 ODDNODEGROUP(節點 1、3、5)分別指定容器。所有節點共用 /dev/HDISK0 10000 頁,另各自擁有 40000 頁專屬裝置,實現存儲隔離與負載均衡。
CREATE TABLESPACE SMS8K
PAGESIZE 8192
MANAGED BY SYSTEM
USING ('FSMS_8K_1')
BUFFERPOOL BUFFPOOL8K;
建立 8KB 頁面的 SMS 表空間,必須指定同頁面大小的緩衝池(BUFFPOOL8K)。表空間僅在緩衝池啟動後可用,適合大物件(LOB)或長行資料存儲。
RENAME TABLESPACE old_name TO new_name。會更新所有目錄記錄,但 SYSCATSPACE、處於前滾暫掛/前滾狀態的表空間不可重命名。DROP TABLESPACE ts_name。會刪除所有資料、釋放容器、移除目錄項,表空間內物件標記失效。若欲重用容器,必須先 COMMIT 該 DROP 指令。掌握跨平台建立語法與生命週期管理,是 DBA 打造高可用、高效能 DB2 環境的基石。