【DB2】表空間相關詳細說明
-、創建表空間
1.創建用戶表空間
聲明:在指定表空間創建路徑的時候,需要指定空文件夾,非空文件夾會導致創建報錯!!!如果文件夾不存在,那麽在創建表空間的時候會自動創建文件夾!
1.1 創建SMS表空間
CREATE TABLESPACE <NAME> MANAGED BY SYSTEM USING (‘<path>‘)
例子:db2 "create tablespace tbs1 managed by system using (‘/db2home/db2inst1/db2inst1/NODE0000/QINDB/tb_dm1‘)"
1.2 創建DMS表空間
CREATE TABLESPACE <NAME> MANAGED BY DATABASE USING (DEVICE|FILE‘<path>‘)
例子:db2 "create tablespace tbs2 managed by database using (FILE ‘/db2home/db2inst1/db2inst1/NODE0000/QINDB/tb_dm‘ 100M)"
1.2 創建自動存儲器表空間
CREATE TABLESPACE <name>
CREATE TABLESPACE <name> MANAGED BY AUTOMATIC STORAGE
2.創建臨時表空間
系統臨時表空間用來存儲分組、排序、連接、重組、創建索引等中間結果。數據庫中至少有一個這樣的表空間。創建數據庫的時候默認表空間之一便是名為TEMPSPACE1的系統臨時表空間
CREATE SYSTEM TEMPORARY TABLESPACE <NAME> MANAGED BY DATABASE USING (‘<path1>‘,<path2>‘)
例子:db2 "CREATE SYSTEM TEMPORARY TABLESPACE tbs_tmp MANAGED BY SYSTEM USING (‘/db2home/db2inst1/db2inst1/NODE0000/QINDB/tmp1‘,‘/db2home/db2inst1/db2inst1/NODE0000/QINDB/tmp2‘)"
3.創建用戶臨時表空間
用戶臨時表空間不是在創建數據庫時默認創建的,用戶臨時表空間通常用來批量插入、批量刪除、批量更新以加快速度。
CREATE USER TEMPORARY TABLESPACE tbs1_tmp MANAGED BY DATABASE USING (FILE ‘<path1>‘ size)
例子:db2 "CREATE USER TEMPORARY TABLESPACE tbs1_tmp MANAGED BY DATABASE USING (FILE ‘/db2home/db2inst1/db2inst1/NODE0000/QINDB/tmp3‘ 5000)"
上述語句表示:建立一個5000頁的用戶臨時表空間
二、表空間維護
1.查看表空間
db2 list tablespaces --粗略查看表空間
或者
db2 list tablespaces show detail --查看表空間詳細2.查看容器
db2 list tablespaces for 【容器ID】 show detail
例子:
3.縮小表空間容量
ALTER TABLESPACE <name> REDUCE (FILE ‘<path>‘ 10M)"
例子:db2 "ALTER TABLESPACE tbs2 REDUCE (FILE ‘/db2home/db2inst1/db2inst1/NODE0000/QINDB/tb_dm‘ size)"
4.擴大表空間容量
ALTER TABLESPACE <name> RESIZE (FILE ‘<path>‘ 10M)"
例子:db2 "ALTER TABLESPACE tbs2 RESIZE (FILE ‘/db2home/db2inst1/db2inst1/NODE0000/QINDB/tb_dm‘ 200M)"
5.添加容器
ALTER TABLESPACE <name> ADD(FILE ‘<path>‘ size)
例子:db2 "ALTER TABLESPACE tbs2 ADD(FILE ‘/db2home/db2inst1/db2inst1/NODE0000/QINDB/tmp1.LRG‘ 150M)"
6.刪除容器
在上述創建的表空間tbs_tmp中存在兩個容器,現在我們刪除容器
ALTER TABLESPACE <name> DROP(FILE ‘<path>‘)
例子:db2 "ALTER TABLESPACE tbs2 DROP(FILE ‘/db2home/db2inst1/db2inst1/NODE0000/QINDB/tmp1.LRG‘)"
7.更改表空間表名稱
RENAME TABLESPACE 原表空間名 to 新表空間名
例子:db2 "rename tablespace tbs2 to tbs2_tmp"
【DB2】表空間相關詳細說明