表空间

1. 表,视图,索引的驻留在表空间里边。
   一个数据库可以有多个表空间。在首次创建数据库时db2 会默认创建一组表空间

2. SYSCATSPACE  系统编目表空间,用来存储关于数据库的元信息。不能删
   TEMPSPACE1  临时表空间,不能删
   USERSPACE1  用户表空间

按类型分为:规则表空间、大对象表空间、系统临时表空间、用户临时表空间
 
   规则表空间中包含用户数据的表。默认用户表空间名为USERSPACE1,索引也存储在规则表空间中,另外系统目录表也放在规则表空间中。默认的系统目录表空间名为SYSCATSPACE。

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

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


3. SMS  DMS 

   sms : System Managed space
         空间需要的初始设置比较少,管理方面需要考虑的因素少,而且一般更容易创建
           和使用,因为空间会在需要时自动地分配。
   dms : Database Managed Space
         表空间需要在创建时预先分配空间,所以需要进行比较多的初始设置工作,管理
          方面也有更多需要考虑的因素。但是,它为用户提供了更大的灵活性,可以更好地
          控制数据的布局并改进数据访问的性能。比sms好。
   sms :  os关联
  
    SYSCATSPACE USERSPACE1 --- dms
    TEMPSPACE1  ---sms

4. bufferpool
    
     是一个内存块的集合,这些内存块采用页面的形式,首次创建时会默认创建一个
      IBMDEFAULTBP Buffer Pools
    
     db2支持不同的页面大小,2K,4K,8K,16K ,32K,IBMDEFAULTBP 中使用4K的页
      面大小,如果希望创建采用其他页面大小的表空间,那么首先要确保数据库中有采用这
      种页面大小的缓冲池。多个表空间可以使用同一个缓冲池。在创建或更改表空间时,可
      以指定要使用哪个缓冲池。选择和创建适当的缓冲池对于数据库性能很重要。可以根据
      需要创建新的缓冲池或更改现有的缓冲池


1.在Windows上创建一个SMS表空间

CREATE TABLESPACE RESOURCE MANAGED BY SYSTEM USING ('d:\acc_tbsp','e:\acc_tbsp','f:\acc_tbsp')

2.在Windows上创建一个DMS表空间,使用各自有5000页的两个文件容器

CREATE TABLESPACE RESOURCE MANAGED BY DATABASE USING  (FILE 'd:\db2data\acc_tbsp' 5000, FILE 'e:\db2data\acc_tbsp' 5000)

3.在例三所创建的表空间中添加一个容器

ALTER TABLESPACE RESOURCE ADD(FILE 'f:\db2data\acc_tbsp' 5000)

4.用RESIZE子句更改例三所创建的表空间的容器的大小

ALTER TABLESPACE RESOURCE RESIZE (file 'd:\db2data\acc_tbsp' 8000, file 'e:\db2data\acc_tbsp' 8000, file 'f:\db2data\acc_tbsp' 8000)

每个容器(文件)的大小变为8000页。把容器的容量变大不会出错,但是如果容器中的数据已经充满,再把容器的容量缩小,则会引起错误。

5.用EXTEND子句更改例三所创建的表空间的容器的大小

ALTER TABLESPACE RESOURCE EXTEND (file 'd:\db2data\acc_tbsp' 1000, file 'e:\db2data\acc_tbsp' 1000, file 'f:\db2data\acc_tbsp' 1000)

该命令的运行结果为在原有容量的基础之上,每个容器再增加1000页。



CREATE TABLESPACE "USERTBS3"
  IN DATABASE PARTITION GROUP "IBMDEFAULTGROUP"
  PAGESIZE 8K
  MANAGED BY SYSTEM
  USING
   ('G:\db2\USERSP3\USERTBS0'
   )
     ON DBPARTITIONNUM (0)
  USING
   ('G:\db2\USERSP3\USERTBS1'
   )
     ON DBPARTITIONNUM (1)
  USING
   ('G:\db2\USERSP3\USERTBS2'
   )
     ON DBPARTITIONNUM (2)
  USING
   ('G:\db2\USERSP3\USERTBS3'
   )
     ON DBPARTITIONNUM (3)
  EXTENTSIZE 16
  PREFETCHSIZE 16
  BUFFERPOOL "bp8"
  OVERHEAD 10.50
  TRANSFERRATE 0.14
  DROPPED TABLE RECOVERY OFF;



CREATE BUFFERPOOL "bp8"
  IMMEDIATE
  DATABASE PARTITION GROUP
    "IBMDEFAULTGROUP",
    "IBMTEMPGROUP",
    "SINGLE_PG",
    "IBMCATGROUP"
  SIZE 10000
  NUMBLOCKPAGES 0
  PAGESIZE 8 K;



CREATE TABLE "CCP"."BIL_ACCT_INFO_290_200901"
("PRD_INST_ID"      DECIMAL(20, 0),
  "INLOCAL_FEE_OLD"  DECIMAL(16, 2),
  "TRALD_FEE_OLD"    DECIMAL(16, 2),
  "BELOCAL_FEE_OLD"  DECIMAL(16, 2),
  "IP_FEE_OLD"       DECIMAL(16, 2),
  "MONTHLY_CHARGE_OLD"DECIMAL(16, 2),
  "SMS_FEE_OLD"      DECIMAL(16, 2),
  "VAS_FEE_OLD"      DECIMAL(16, 2),
  "FEE_OLD_11808"    DECIMAL(16, 2),
  "INLOCAL_FEE"      DECIMAL(16, 2),
  "TRALD_FEE"        DECIMAL(16, 2),
  "BELOCAL_FEE"      DECIMAL(16, 2),
  "IP_FEE"           DECIMAL(16, 2),
  "MONTHLY_CHARGE"   DECIMAL(16, 2),
  "SMS_FEE"          DECIMAL(16, 2),
  "VAS_FEE"          DECIMAL(16, 2),
  "FEE_11808"        DECIMAL(16, 2),
  "COUNT_INLOCAL"    INTEGER,
  "DUR_INLOCAL"      DECIMAL(20, 0),
  "COUNT_NET"        INTEGER,
  "DUR_NET"          DECIMAL(20, 0),
  "COUNT_TRALD"      INTEGER,
  "DUR_TRALD"        DECIMAL(20, 0),
  "COUNT_IP"         INTEGER,
  "DUR_IP"           DECIMAL(20, 0),
  "COUNT_VAS"        INTEGER,
  "DUR_VAS"          DECIMAL(20, 0),
  "COUNT_11808"      INTEGER,
  "DUR_11808"        DECIMAL(20, 0),
  "FEE_OLD"          DECIMAL(16, 2),
  "FEE"              DECIMAL(16, 2),
  "ACC_NBR"          VARCHAR(16)
)
  DATA CAPTURE NONE
IN "USERTBS2"
  PARTITIONING KEY
   (PRD_INST_ID
   ) USING HASHING
  NOT LOGGED INITIALLY;


你可能感兴趣的:(.net,windows,OS,db2,F#)