Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Database/JDBC/SQL/JDO/Hibernate » DB2  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 DB2 的表空间
hzxl





发贴: 169
积分: 40
于 2003-08-31 18:16 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
DB2 的表空间按管理方式分为两种:系统管理空间(System Management

Space,SMS)和数据库管理空间(Database Management Space,DMS)。

按类型分为:规则表空间、长整数表空间、系统临时表空间、用户临时表空间

。其中长整数表空间只能是DMS的。

规则表空间中包含用户数据的表。默认用户表空间名为USERSPACE1,索引也存

储在规则表空间中,另外系统目录表也放在规则表空间中。

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

临时表空间分为系统临时表空间和用户临时表空间。系统临时表空间用来存储

各种数据操作(排序、重组表、创建索引、连接表)中所需的内部临时数据,虽

然可以创建任意多个系统临时表空间,但建议用户只使用大多数表所使用的页大

小创建一个,默认系统临时表空间名为TEMPSPACE1。用户临时表空间用来存储已

说明全局临时表(已说明全局临时表存储的是应用程序临时数据)。用户临时表

空间不是在数据库创建时默认创建的。

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>Wink

例一:在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页大小。另外,创建的表空间只有在所引用的

缓冲池被激活后才能使用。

例六:创建系统临时表空间:
系统临时表只能存储在系统临时表空间中,所以数据库必须始终至少有一个系

统临时表空间。
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:\db2data\user_tbsp' 5000,
FILE 'e:\db2data\user_tbsp' 5000)
与常规表空间一样,用户临时表空间可以在除IBMTEMPGROUP之外的任何节点组中

创建。创建用户临时表空间使用的默认节点组是IBMDEFAULTGROUP。DECLARE

GLOBAL TEMPORARY TABLE 语句定义提供在用户临时表空间中使用的已说明临时表



例八:将两个新设备容器添加到UNIX上的一个表空间中:
ALTER TABLESPACE RESOURCE
ADD (DEVICE '/dev/rhd9' 10000,
DEVICE '/dev/rhd10' 10000)

例九:把UNIX上的表空间中的两个设备容器改变大小(由1000页改为2000页)
ALTER TABLESPACE HISTORY
RESIZE (DEVICE '/dev/rhd7' 2000,
DEVICE '/dev/rhd8' 2000)

例十:在UNIX表空间中,扩充两个设备容器(原本各含1000页)
ALTER TABLESPACE HISTORY
EXTEND (DEVICE '/dev/rhd11' 1000,
DEVICE '/dev/rhd12' 1000)
操作后两个设备的大小都从1000页扩充至2000页。不能缩小容器的大小。

可以给现存表空间重命名,而无须关心该表空间中的个别对象。重命名表空间时

,将更改所有引用该表空间的目录记录。不能重命名SYSCATSPACE表空间;不能重

命名处于前滚暂挂或正在前滚状态的表空间。

删除表空间时,也会删除该表空间中的所有数据,释放容器,去除目录项,并导

致该表空间中定义的所有对象都被删除或标记为无效。可以通过删除表空间来重

新使用该表空间中的容器,但是在试图重新使用这些容器之前,必须COMMIT该

DROP TABLESPACE命令。




flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923