【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 --查看表空間詳細

image

2.查看容器

db2 list tablespace containers for 【容器ID】 show detail

例子:

image

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"

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM