DB2表空间相关详细说明

Posted 奔跑的金鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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"

 

 

以上是关于DB2表空间相关详细说明的主要内容,如果未能解决你的问题,请参考以下文章

SQL中内连接使用详细说明

转载Oracle Spatial中SDO_Geometry详细说明

DB2中where子句中用了1=1的话,会不会导致索引失效,请详细说明.

如何把已有的ArcGIS的Shape File空间数据文件,转入到Oracle Spatial中,举例说明详细的工作步骤。

C#中类和命名空间是啥?为啥要用?啥时候用到?请高手详细说明

mysqldump参数详细说明(转)