首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 表空間深度解析:SMS vs DMS、四大類型、容器管理與重命名實戰範例

     編輯:DB2 教學

表空間定位

表空間是資料庫與表之間的邏輯層,支援將資料分散存放於不同磁碟/路徑,提升 I/O 平行度與效能。

管理模式對比:SMS vs DMS

特性SMS (系統管理)DMS (資料庫管理)
容器形式作業系統目錄預分配檔案或裸裝置
空間管理OS 自動擴展手動擴展/縮減
效能一般優於 SMS(大多數場景)
動態增減容器不支援支援
索引/LOB 獨立表空間不支援支援
表分散多表空間不支援支援
按需分配空間是否
跨磁碟放置表空間是否(容器層級可跨磁碟)
建立後修改Extent Size否否

四大表空間類型

  • 規則表空間:儲存使用者資料表、索引、系統目錄。預設:USERSPACE1、SYSCATSPACE。
  • 大物件表空間:專儲 LOB 資料。
  • 系統臨時表空間:排序、重組、建索引、連接等內部臨時資料。預設 TEMPSPACE1,建議僅保留一個。
  • 使用者臨時表空間:儲存宣告式全域臨時表 (DECLARE GLOBAL TEMPORARY TABLE) ,非預設建立。

命令列建立語法

SMS 表空間

create tablespace tbsp_name managed by system using ('path1', 'path2')

DMS 表空間 (檔案容器)

create tablespace tbsp_name managed by database using (file 'path1' 5000, file 'path2' 5000)

DMS 表空間 (裸裝置)

create tablespace tbsp_name managed by database using (device '/dev/rdblv6' 10000, device '/dev/rdblv7' 10000)

實戰範例 (Windows 環境)

  1. 建立 SMS:create tablespace RESOURCE managed by system using ('d:\acc_tbsp','e:\acc_tbsp','f:\acc_tbsp') → 三磁碟各建目錄與 SQLTAG.NAM。
  2. 刪除 SMS:drop tablespace RESOURCE → 目錄殘留需手動刪除。
  3. 建立 DMS (兩檔案容器各 5000 頁):create tablespace RESOURCE managed by database using (file 'd:\db2data\acc_tbsp' 5000, file 'e:\db2data\acc_tbsp' 5000) → 各產生 20MB 檔案。
  4. 新增容器:alter tablespace RESOURCE add (file 'f:\db2data\acc_tbsp' 5000)。
  5. RESIZE 重設大小:alter tablespace RESOURCE resize (file 'd:\...' 8000, file 'e:\...' 8000, file 'f:\...' 8000) → 直接設定新大小,縮小受限於已用空間。
  6. EXTEND 擴充:alter tablespace RESOURCE extend (file 'd:\...' 1000, file 'e:\...' 1000, file 'f:\...' 1000) → 在原基礎上各增 1000 頁。
  7. 刪除 DMS:drop tablespace RESOURCE → 目錄與檔案同步自動刪除。
  8. UNIX 裸裝置建立:create tablespace RESOURCE managed by database using (device '/dev/rdblv6' 10000, device '/dev/rdblv7' 10000, device '/dev/rdblv8' 10000) → 需預先建立裝置並授權。
  9. 建立系統臨時表空間:create system temporary tablespace tmp_tbsp managed by system using ('d:\tmp_tbsp','e:\tmp_tbsp')。
  10. 建立使用者臨時表空間:create user temporary tablespace usr_tbsp managed by database using (file 'd:\db2data\user_tbsp' 5000, file 'e:\db2data\user_tbsp' 5000)。
  11. 重命名表空間:rename tablespace RESOURCE to RES1 → 系統目錄自動更新,無需手動處理物件引用。
  12. 指定表空間建表:create table T1 (abc int) in RESOURCE。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved