DB2表空间管理的两种方式

数据库
DB2 的表空间按管理方式分为两种:系统管理空间(System Management Space,SMS)和数据库管理空间(Database Management Space,DMS)。

下文将为您介绍DB2 的表空间按管理方式,并附上相关问题的实例,供您参考,如果您对DB2表空间按管理方式感兴趣的话,不妨一看,会对您有所帮助。

DB2 的表空间按管理方式分为两种:系统管理空间(System Management Space,SMS)和数据库管理空间(Database Management Space,DMS)。

按类型分为:规则表空间、长整数表空间、系统临时表空间、用户临时表空间。其中长整数表空间只能是DMS的。

规则表空间中包含用户数据的表。默认用户表空间名为USERSPACE1,索引也存储在规则表空间中,另外系统目录表也放在规则表空间中。

默认的系统目录表空间名为SYSCATSPACE。

临时表空间分为系统临时表空间和用户临时表空间。系统临时表空间用来存储各种数据操作(排序、重组表、创建索引、连接表)中所需的内部临时数据,虽然可以创建任意多个系统临时表空间,但建议用户只使用大多数表所使用的页大小创建一个,默认系统临时表空间名为TEMPSPACE1。用户临时表空间用来存储已说明全局临时表(已说明全局临时表存储的是应用程序临时数据)。用户临时表空间不是在数据库创建时默认创建的。

SMS每个容器是操作系统的文件空间中的一个目录;DMS每个容器是一个固定的、预分配的文件,或是物理设备。

SMS的管理比较简单,由操作系统自动管理,空间的大小随数据量的变化系统自动调整。

DMS是由数据库管理的,空间大小在创建时确定,空间不够时要手工添加或删除部分数据以释放空间。

大多数情况下,DMS的性能比SMS好。

用命令行方式创建SMS表空间的简单语法:#p#

CREATE TABLESPACE <NAME>; MANAGED BY SYSTEM USING ('<path>;')
用命令行方式创建DMS表空间的简单语法:
CREATE TABLESPACE <NAME>; MANAGED BY DATABASE USING (FILE '<path>;'
<size>;)
例一:在OS/2或Windows NT上创建一个SMS表空间:
CREATE TABLESPACE RESOURCE MANAGED BY SYSTEM
USING ('d:\acc_tbsp','e:\acc_tbsp','f:\acc_tbsp')
例二:在OS/2上创建一个DMS表空间,使用各自有5000页的两个文件容器:
CREATE TABLESPACE RESOURCE MANAGED BY DATABASE
USING (FILE 'd:\db2data\acc_tbsp' 5000,
FILE 'e:\db2data\acc_tbsp' 5000)
例三:在UNIX上创建一个DMS表空间,使用各有10000页的3个逻辑卷:
 CREATE TABLESPACE RESOURCE MANAGED BY DATABASE
USING (DEVICE '/dev/rdblv6' 10000,
DEVICE '/dev/rdblv7' 10000,
DEVICE '/dev/rdblv8' 10000)
OVERHEAD 24.1
TRANSFERRATE 0.9
上面语句中提到的UNIX设备必须已经存在,且实例拥有者和SYSADM组必须能够写入它们。
例四:在UNIX分区数据库中称为ODDNODEGROUP的节点组上创建一个DMS表空间:
CREATE TABLESPACE PLANS MANAGED BY DATABASE
USING (DEVICE '/dev/HDISK0' 10000, DEVICE '/dev/n1hd01' 40000) ON
NODE 1
(DEVICE '/dev/HDISK0' 10000, DEVICE '/dev/n3hd03' 40000) ON
NODE 3
(DEVICE '/dev/HDISK0' 10000, DEVICE '/dev/n5hd05' 40000) ON
NODE 5
在此例中,ODDNODEGROUP节点组由编号为1、3、5的数据库分区组成,在所有数据库分区上,都使用具有10000个4KB页的 /dev/hdisk0 设备,另外,还为每个数据库分区说明了一个包含40000个4KB大小的页的设备。
例五:在UNIX系统上,创建一个具有8KB页大小的SMS表空间:
    CREATE TABLESPACE SMS8K PAGESIZE 8192
    MANAGED BY SYSTEM
    USING ('FSMS_8K_1')
    BUFFERPOOL BUFFPOOL8K
相关的缓冲池也必须具有相同的8KB页大小。另外,创建的表空间只有在所引用的缓冲池被激活后才能使用。

可以给现存表空间重命名,而无须关心该表空间中的个别对象。重命名表空间时,将更改所有引用该表空间的目录记录。不能重命名SYSCATSPACE表空间;不能重命名处于前滚暂挂或正在前滚状态的表空间。删除表空间时,也会删除该表空间中的所有数据,释放容器,去除目录项,并导致该表空间中定义的所有对象都被删除或标记为无效。可以通过删除表空间来重新使用该表空间中的容器,但是在试图重新使用这些容器之前,必须COMMIT该DROP TABLESPACE命令。

 

责任编辑:段燃 来源: IT168
相关推荐

2010-09-30 11:55:03

DB2表空间

2010-11-01 12:11:43

DB2表空间

2010-11-02 14:45:12

DB2创建表空间

2010-11-04 10:16:38

db2日志保存

2010-08-26 15:15:18

DB2备份

2010-11-01 09:54:24

DB2管理服务器

2010-09-01 14:46:16

DB2表空间

2010-11-04 10:09:23

DB2存储过程

2010-11-01 16:07:22

DB2表空间

2010-11-01 16:44:43

DB2表空间

2010-11-01 16:38:13

DB2表空间

2010-11-02 10:27:38

DB2分区数据库恢复

2010-09-07 09:43:34

DB2提供

2010-11-03 11:26:39

DB2表空间

2010-09-01 14:00:01

DB2表空间

2010-08-02 13:05:01

DB2应用

2010-07-27 13:46:08

DB2提高IMPORT

2010-11-01 11:13:57

DB2表管理

2010-08-26 16:49:09

DB2导入导出

2010-08-10 13:36:00

点赞
收藏

51CTO技术栈公众号