深入理解DB2表空间(Tablespace)(2)

自动存储表空间不是真正意义上的独立类型的表空间。它是DMS存储的另外一种处理方法。DMS需要很多的维护操作,而自动存储器则是作为一种简化的空间管理手段,能够自动进行表空间的管理维护,它是DB2 V8.8.2中引入的概念,目前取代SMS成为默认的表空间类型。

三种表空间的对比

三种表空间在各方面的区别是非常多的,下表显示了一些主要的区别:

深入理解DB2表空间(Tablespace)


除了使用 SMS 表空间可以简化管理之外,SMS和DMS存储模型之间最显著的差异是表空间的最大大小。在使用 SMS 时,DBA 最多只能在表空间中放 64GB 的数据。将页面大小改为 32K,可以将这个限制扩大到 512GB,但代价是每个页面上的可用空间可能会更少。改为 DMS 模型会将表空间限制扩大到 2TB(4K 页面大小的情况下)。如果将页面大小改为 32K,可用空间可以增长到 16TB。尽管还有让表大小突破 64GB 限制的其他方法,但是最简单的方法可能是一开始就使用 DMS 表空间。(为什么会有这些限制后面介绍)

DMS与自动存储DMS

那么DMS和自动存储哪种方式更佳呢?自动存储允许 DBA 为数据库设置在创建所有表空间容器时可以使用的存储路径。DBA 不必显式地定义表空间的位置和大小,系统将自动地分配表空间。在 DB2 9 中,数据库在创建时将启用自动存储,除非 DBA 显式地覆盖这个设置。 
启用自动存储的数据库有一个或多个相关联的存储路径。表空间可以定义为 “由自动存储进行管理”,它的容器由 DB2 根据这些存储路径进行分配。数据库只能在创建时启用自动存储。对于在最初没有启用自动存储的数据库,不能在以后启用这个特性。同样,对于在最初启用了自动存储的数据库,也不能在以后禁用这个特性。 
下面的表总结了管理非自动存储和自动存储之间的一些差异。

深入理解DB2表空间(Tablespace)


引入自动存储模型的主要目的是简化 DMS 表空间的管理,同时保持其性能特征。有的时候 DBA 必须定义使用的表空间的所有特征,但是许多应用程序都会从自动存储提供的简化管理获益。

上述是按照管理方式的不同对数据库表空间类型进行了划分,事实上,根据用途的不同,表空间也可以划分为五种类型:

系统表空间(SYSCATSPACE)

系统表空间又称为系统编目表空间,DB2系统编目表是DB2数据库保存所有DB2对象元数据的地方,在Oracle数据库中,被称为数据字典。而系统编目表就存放在系统表空间中。系统表空间是数据库创建时自动创建的,且每个数据库必须有且仅有一个系统表空间,系统表空间被强制命名为SYSCATSPACE。系统表空间默认是SMS表空间,也可以显式指定为DMS表空间。

系统工具表空间(SYSTOOLSPACE)

系统工具表空间是供DB2管理工具和SQL管理例程使用的特定表空间,系统工具表空间不能被显式创建,只有第一次使用下面任一工具或过程时才会自动创建:ADMIN_COPY_SCHEMA 过程 ,ADMIN_DROP_SCHEMA 过程, 管理任务调度程序, 改变表笔记本, ALTOBJ 过程, 自动重组(包括 db.tb_reorg_req 运行状况指示器), 自动收集统计信息(包括 db.tb_runstats_req 运行状况指示器), 配置自动维护向导, db2look 命令, 设计顾问程序, GET_DBSIZE_INFO 过程, 存储管理工具,SYSINSTALLOBJECTS 过程。其中管理任务调度程序、ADMIN_COPY_SCHEMA 和 ADMIN_DROP_SCHEMA 过程的首次使用不会创建系统工具表空间,但是他们使用的是系统工具表空间。

用户表空间(USERSPACE)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/1a6aa55d8c6133dd7cf3e4606d695bf6.html