好长时间没来更新了,最近终于闲了下来也有时间更新。
一 概述
DB2数据库的表空间也成为表空间容器,对于表空间的容器分:SMS和DMS两种。
1、 SMS是由操作系统自动分配存储空间,这种方式的特点是表空间以文件夹的系统是存在,其优点是:无需过多的管理表空间,表空间以文件的形式存放,操作系统随数据中数据的增长,自动分配新的文件来存放数据等,缺点:性能不如DMS好,不可以将数据表空间和索引表空间分离等;
2、 DMS是由人工分配存储空间,这种存储方式的特点是表空间以文件或是裸设备的形式存在,其优点是:能启用数据库的分区并行性,提高数据库的访问性能,减少数据的数据碎片,可以将数据表空间和索引表空间分离等,其缺点相对于SMS来讲,需要更多的人工干预管理。
在创建数据库之前首先须确定将使用什么样的表空间存储形式来存放。
二 创建数据库
先决条件:
创建数据库时必须知道准备引用的容器的设备和文件名,必须知道与要分配给表空间的每个设备或文件名相关联的空间。
1、SMS存储形式下的数据库创建方式:
CREATE DATABASE <database_name>
CATALOG TABLESPACE
MANAGED BY SYSTEM USING ('<path>')
EXTENTSIZE <value> PREFETCHSIZE <value>
USER TABLESPACE
MANAGED BY SYSTEM USING (FILE'<path>')
EXTENTSIZE <value> PREFETCHSIZE <value>
TEMPORARY TABLESPACE
MANAGED BY SYSTEM USING ('<path>')
EXTENTSIZE <value> PREFETCHSIZE <value>
WITH "<comment>"
其中:
database_name:数据库名称
alias_name:数据库别名
('<path>'):数据库文件存放路径
EXTENTSIZE <value> PREFETCHSIZE <value>:分别为数据表空间的页大小和预大小
<size>:容器的页大小,每一个页的大小是4k;
例如下面的例子:
CREATE DATABASE TEST ON D: ALIAS TEST
CATALOG TABLESPACE
MANAGED BY SYSTEM USING ('D:\TEST.DB\SYS’)
EXTENTSIZE 8 PREFETCHSIZE 8
USER TABLESPACE
MANAGED BY SYSTEM USING ('D:\TEST.DB\DATA’)
EXTENTSIZE 16 PREFETCHSIZE 16
TEMPORARY TABLESPACE
MANAGED BY SYSTEM USING ('D:\TEST.DB\TEMP')
EXTENTSIZE 32 PREFETCHSIZE 32
TEMPORARY TABLESPACE WITH "测试用数据库"
2、DMS存储形式下的数据库创建方式:
CREATE DATABASE <database_name>
CATALOG TABLESPACE
MANAGED BY DATABASE USING (FILE '<path>',<size>)
EXTENTSIZE <value> PREFETCHSIZE <value>
USER TABLESPACE
MANAGED BY DATABASE USING (FILE '<path>',<size>)
EXTENTSIZE <value> PREFETCHSIZE <value>
TEMPORARY TABLESPACE
MANAGED BY DATABASE USING (FILE '<path>’, <size>)
EXTENTSIZE <value> PREFETCHSIZE <value>
WITH "<comment>"
其中:
<size>:容器的页大小,每一个页的大小是4k;
例如:
CREATE DATABASE <database_name>
CATALOG TABLESPACE
MANAGED BY DATABASE USING (FILE ' D:\TEST.DB\SYS ',5000)
EXTENTSIZE 32 PREFETCHSIZE 64
USER TABLESPACE
MANAGED BY DATABASE USING (FILE ' D:\TEST.DB\DATA',5000)
EXTENTSIZE 32 PREFETCHSIZE 64
TEMPORARY TABLESPACE
MANAGED BY DATABASE USING (FILE ' D:\TEST.DB\TEMP’,2000)
EXTENTSIZE 32 PREFETCHSIZE 64
WITH "测试用数据库"
三、创建、更改缓冲池
1、创建缓冲池:
CREATE Bufferpool Bufferpool_name SIZE <value> PAGESIZE <page_size> K
其中:
Bufferpool_name:缓冲池名称
Value:缓冲池分配的页数
page_size:页大小
例如:
CREATE Bufferpool BUFF_DATA SIZE 250 PAGESIZE 4 K
3、 更改缓冲池大小:
ALTER BUFFERPOOL Bufferpool_name SIZE value
其中:
Bufferpool_name:缓冲池名称
Value:缓冲池分配的页数
例如:
ALTER BUFFERPOOL BUFF_DATA SIZE 25000
4、 将缓冲池与表空间关联
ALTER TABLESPACE tablespace_name BUFFERPOOL Bufferpool_name
其中:
tablespace_name:表空间名称
Bufferpool_name:缓冲池名称
例如:
ALTER TABLESPACE TIMMS_DATA BUFFERPOOL BUFFER_DATA
请尊重原创。明天我是否还能坚持......................