⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 db2 的表空间.txt

📁 db2 指定某个字符串中的第几个字符的更新
💻 TXT
字号:
  CU-DB2讨论区精华帖   
 

ChinaUnix.net > 论坛首页 > 精华首页 > DB2精华区 > 正文  
 
[原]: DB2 的表空间 
http://www.chinaunix.net 作者:足球小子  发表于:2003-07-02 09:05:59 

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> 

例一:在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命令。

 
 
【发表回复】【查看CU论坛原帖】【关闭】  

--------------------------------------------------------------------------------
 大连老K 回复于:2003-07-02 09:44:29 
不错,给你加精

 
 
 

Copyright ? ChinaUnix.net 
 *  请尊重我们的劳动,转载请注明出自ChinaUnix.net及作者名  *  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -