1. 程式人生 > >【DB2】表空間相關詳細說明

【DB2】表空間相關詳細說明

device 臨時表 auto 中間 temporary play 容器 back 技術

-、創建表空間

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】表空間相關詳細說明