ftsr 发表于 2016-11-14 01:54:46

DB2 730学习笔记3

  DB2数据
  DB2数据库是一个对象的集合,对象包括表、索引、视图和大对象。
  DB2存储模型
  DB2使用一个逻辑存储模型和一个物理存储模型来处理数据库。
  用户操作的实际数据存储在表中;表本身放在表空间中,并且表空间可以包含多个表。
  容器是一个物理存储设备。它可以由目录名、设备名或文件名标识。容器被分配给表空间,表空间可以跨许多容器。
  DMS和SMS表空间
  DB2支持三种表空间:
  系统管理的表空间(System-Managed Spacce)由操作系统的文件系统管理器分配和管理空间。
  数据库管理的表空间(Database-Managed Space)由数据库管理程序控制存储空间。
  DMS的自动存储(Automatic Storage With DMS) DBA不必显示地定义表空间的位置和大小,系统将自动地分配表空间。在DB2 9中,数据库创建时将启用自动存储,除非DBA显示地覆盖这个设置。DB2只能在创建数据库时启用自动存储,对于没有启用自动存储的数据库,不能在以后启用这个特性;同样,对于在最初启用了自动存储的数据库,也不能再以后禁用这个特性。
  创建数据库命令:
  CREATE DATABASE TEST
  发出这个命令时,DB2会创建日志文件、配置信息、历史文件和三个表空间:
  SYSCATSPACE:保存DB2系统编目的地方;
  TEMPSPACE1:放置中间结果的临时工作区;
  USERSPACE1:默认情况下存放所有用户对象(表、索引)的地方。
  CREATE DATABASES TEST
  AUTOMATIC STORAGE ON
  /u01/app/db_1/storagepath001,
  /u01/app/db_1/storagepath002,
  /u01/app/db_1/storagepath003
  AUTORESIZE YES
  INITIALSIZE 30M
  INCREASESIZE 7M
  MAXSIZE NONE
  这个创建数据库的语法是错误的。在创建数据库时不能指定存储空间的大小,而是在创建表空间时指定。
  CREATE DATABASE TEST
  AUTOMATIC STORAGE YES ON
  /u01/app/db_1/storagepath001,
  /u01/app/db_1/storagepath002,
  /u01/app/db_1/storagepath003
  创建表空间:
  CREATE TABLSAPCE TEST MANAGED BY  AUTOMATIC STORAGE;
  在没用启用自动存储的数据库创建表空间时,必须指定MANAGED BY SYSTEM或MANAGED BY DATABASE子句。
  SMS表空间管理使用SYSTEM USING关键字:SYSTEM USING ('container string');对于SMS表空间,container string表识一个或多个将属于这个表空间的容器,表空间的数据存储在这些容器中。
  DMS表空间管理使用DATABASE USING关键字:DATABASE USING('FILE/DEVICE 'container string' number of pages);指定容器的类型FILE或DEVICE和大小PAGESIZE,大小还可以指定为一个整数,后面跟着K、M或G。
  对于FILE容器,字符串必须是绝对或相对的文件名;如果文件名不是绝对的,它就相对于数据库目录;如果目录名的任何部分不存在,数据库管理程序就会创建这个目录。
  对于DEVICE容器,字符串必须是设备名而且这个设备必须存在。
  所有容器必须是在所有数据库上唯一的;一个容器只能属于一个表空间。
  EXTENTSIZE number of pages;EXTENTSIZE指定数据库可以写到一个容器中的pagesize页面数量,达到这个数量之后将跳到下一个容器(后面也可以跟K、M、G或整数)。
  PREFETCHSIZE number of pages;PREFETCHSIZE指定在执行数据预获取时将从表空间中读取的pagesize页面数量(后面也可以跟K、M、G或整数)。预获取会在查询引用数据之前读取查询所需的数据,不需要等待底层操作系统执行 I/O操作。
  
页: [1]
查看完整版本: DB2 730学习笔记3