教你正确的理解DB2中的表空间
2007-10-31 16:22:34 来源:WEB开发网每个容器(文件)的大小变为8000页。把容器的容量变大不会出错,但是如果容器中的数据已经充满,再把容器的容量缩小,则会引起错误。
例6:用EXTEND子句更改例三所创建的表空间的容器的大小:
ALTER TABLESPACE RESOURCE EXTEND
(file 'd:db2dataacc_tbsp' 1000,
file 'e:db2dataacc_tbsp' 1000,
file 'f:db2dataacc_tbsp' 1000)
该命令的运行结果为在原有容量的基础之上,每个容器再增加1000页。
例7:删除例三中创建的DMS表空间:
DROP TABLESPACE RESOURCE
运行的结果为在DB2的注册表中把RESOURCE表空间删除,同时在磁盘上把相对应的文件夹和文件都一起自动删除。
例8:在UNIX上创建一个DMS表空间,使用各有10000页的3个逻辑卷:
CREATE TABLESPACE RESOURCE MANAGED
BY DATABASE USING (DEVICE '/dev/rdblv6' 10000,
DEVICE '/dev/rdblv7' 10000, DEVICE '/dev/rdblv8' 10000)
上面语句中提到的UNIX设备必须已经存在,且实例拥有者和SYSADM组必须能够写入它们。
特性 SMS DMS
能够在表空间中动态增加容器的数目吗 N Y
能够把索引数据存放到不同表空间的表中吗 N Y
能够把大对象数据存放到不同表空间的表中吗 N Y
表可以分散存放到多个表空间中吗 N Y
仅在需要时才分配空间吗 Y N
表空间可以被放在不同的磁盘中吗 Y N
创建之后,区段大小能够改变吗 N N
SMS与DMS的对比
例9:创建系统临时表空间:
CREATE SYSTEM TEMPORARY TABLESPACE tmp_tbsp
MANAGED BY SYSTEM USING(‘d: mp_tbsp’,’e: mp_tbsp’)
系统临时表只能存储在系统临时表空间中,所以数据库必须始终至少有一个系统临时表空间。
例10:创建用户临时表空间:
CREATE USER TEMPORARY TABLESPACE
usr_tbsp MANAGED BY DATABASE USING
(FILE ‘d:db2datauser_tbsp’ 5000,
FILE ‘e:db2datauser_tbsp’ 5000)
用户临时表空间用于存储已说明的临时表(用 DECLARE GLOBAL TEMPORARY TABLE 语句定义)
例11:用RENAME语句给表空间重命名:
RENAME TABLESPACE RESOURCE TO RES1
用该语句给表空间重命名之后,将自动更改所有引用该表空间的目录记录,所以无须关心该表空间中的个别对象。
例12:在RESOURCE表空间中创建一张名为T1的表:
CREATE TABLE T1(ABC INT) IN RESOURCE
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››理解C#中静态Static与单例Singleton
更多精彩
赞助商链接