DB2支持以下两种类型的表空间:
1、 系统管理存储器表空间(SMS-SYSTEM MANAGED STORAGE)
2、 数据库管理存储器表空间(DMS-DATABASE MANAGED STORAGE)
SMS、DMS用户表空间的特性对照
特性 SMS DMS
能够在表空间中动态的增加容器数量 n y
能够把索引数据存放到不同的表空间 n y
能够把长型(LOB)数据存放到单独的表空间 n y
表可以分散存放到多个表空间 n y
只在需要的时候才分配空间 y n
表空间可以被定向到不同类型的磁盘空间 y n
创建之后,区段大小(extent size)能够改变 n n
默认表空间:
当创建数据库的时候,DB2将按照默认方式创建三个表空间:这些表空间缺省是SMS模式。他们是:
SYSCATSPACE: 包含系统编目
TEMPSPACE1:保存临时表
USERSPACE1:包含用户数据
DB2 基本概念
在DB2中由上至下的几个概念:
实例(Instance),
数据库(Database),
表空间(TableSpace),
容器(Container)
在一个操作系统中,DB2数据服务可以同时运行多个实例(有别于Oracle在一个系统内只能起一个实例).
数据库定义在实例中,一个实例可以包含多个数据库。在同一个实例中的不同数据库是完全独立的,分别拥有自己独立的系统编目表。
表空间有2种管理方式:
DMS(Database management Space)方式
SMS(System manegement Space)方式
DMS与SMS方式在表空间建立时指定,建好后不能转换。对于DMS方式,一个表空间对应了一个或多个容器(Container),容器指定了数据的物理存储位置。对于SMS方式,只能够指定一个目录,不能够增加。
表空间具有以下类型:
系统编目表空间(SysCatSpace)
系统临时表空间(SysTempSpace)
用户表空间(UserSpace)
用户临时表空间(UserTempSpace)
一个数据库中必须存在两个系统基本的表空间,分别是系统编目表空间与系统临时表空间。在数据库中创建的任何对象都以在系统编目表空间中增加记录的方式体现,对于临时表空间,其占用磁盘大小是根据使用情况动态伸缩的,即仅在需要时才分配磁盘空间,并在使用后进行回收。此外,若用户需要创建表,则需要创建用户表空间,若需要使用临时表,则需要创建用户临时表空间。
容器分为三种类型:
Files 文件
Devices 设备
Directory 目录
文件与设备,用于DMS方式的表空间;
目录,用于SMS方式的表空间,此种方式不需要人工管理数据存储文件,DB2可根据情况在目录中自动增加存储文件,只要磁盘空间允许。
实质上,表空间是数据存储的逻辑位置定义,容器则是数据存储的物理位置定义。
数据库的性能
影响一个数据库的性能主要有以下因素:
磁盘(Disk)
内存(Memory)
处理器(CPU)
网络(Network)
其中以磁盘最为显著,90%的性能瓶颈可能来自于磁盘的IO竞争;
其次是内存,一方面是指物理内存的总量要满足需求,另一方面是指与内存相关的配置参数应正确配置;
当然处理器的性能也很重要,多路CPU会对哪些依赖计算能力的复杂SQL查询起到显著的效果;
网络不属于主要因素,属于客观的环境因素,是指过慢的网速会对数据的传输造成影响。以下列出一些对于提高数据库性能有效的方法:
对于运行数据库服务的服务器可以尽可能的配置多块物理磁盘,每块的容量不必太大,这样可以有效的分担数据存储与读取操作过程的磁盘IO竞争。即采用多块小容量的磁盘在性能上要优于仅采用一块大容量的磁盘。
如果条件允许,尽量使数据存储服务与操作系统分别运行在物理分开的磁盘上。
采用DMS(Database Man