SMS每个容器是操作系统的文件空间中的一个目录;DMS每个容器是一个固定的、预分配的文件,或是物理设备。SMS的管理比较简单,由操作系统自动管理,空间的大小随数据量的变化系统自动调整。DMS是由数据库管理的,空间大小在创建时确定,空间不够时要手工添加或删除部分数据以释放空间。 大多数情况下,DMS的性能比SMS好。用命令行方式创建SMS表空间的简单语法:
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:db2dataacc_tbsp' 5000,
FILE 'e:db2dataacc_tbsp' 5000)
例四:在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
例五:在UNIX系统上,创建一个具有8KB页大小的SMS表空间:
CREATE TABLESPACE SMS8K PAGESIZE 8192
MANAGED BY SYSTEM
USING ('FSMS_8K_1')
BUFFERPOOL BUFFPOOL8K
相关的缓冲池也必须具有相同的8KB页大小。另外,创建的表空间只有在所引用的
缓冲池被激活后才能使用。
例六:创建系统临时表空间:
系统临时表只能存储在系统临时表空间中,所以数据库必须始终至少有一个系
统临时表空间。
CREATE SYSTEM TEMPORARY TABLESPACE tmp_tbsp
MANAGED BY SYSTEM
USING ('d:tmp_tbsp','e:tmp_tbsp')
创建系统临时表空间时,只能指定IBMTEMPGROUP节点组。
例七:创建用户临时表空间:
用户临时表空间用来存储已说明的临时表。
CREATE USER TEMPORARY TABLESPACE usr_tbsp
MANAGED BY DATABASE
USING (FILE 'd:db2datauser_tbsp' 5000,
FILE 'e:db2datauser_tbsp' 5000)
与常规表空间一样,用户临时表空间可以在除IBMTEMPGROUP之外的任何节点组中创建。创建用户临时表空间使用的默认节点组是IBMDEFAULTGROUP。DECLARE