日期:2014-05-16  浏览次数:20551 次

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操作。

?

?

?

?

?

?

?

?

?

?

?

?

?