DB2 10.5 for Linux, UNIX, and Windows
自动存储器表空间、SMS 表空间和 DMS 表空间的比较
自动存储器表空间、SMS 表空间和 DMS 表空间提供了在不同环境中可能非常有益的不同功能。
要点: 在适用于用户定义的永久表空间的 V10.1 中已经不推荐使用 SMS 表空间类型,在以后的发行版中可能会将其除去。没有不推荐使用适用于目录和临时表空间的 SMS 表空间类型。有关更多信息,请参阅
已经不推荐使用 SMS 永久表
空间。
要点: 从 V10.1 FP1 开始,在用户定义的永久表空间中不推荐使用 DMS 表空间类型,
在以后的发行版中可能会将其除去。对于目录和临时表空间,不推荐使用 DMS 表空间类型。有关更多信息,请参阅已经不推荐使用 DMS 永久表
空间。
自动存储器表空间 | SMS 表空间 | DMS 表空间 | |
---|---|---|---|
创建方式 | 使用 CREATE TABLESPACE 语句的 MANAGED BY AUTOMATIC STORAGE 子句或者通过完全省略 MANAGED BY 子句创建。如果创建数据库时启用了自动存储器,那么对于您创建的任何表空间,除非您另有指定,否则缺省情况是将其创建为自动存储器表空间。 | 使用 CREATE TABLESPACE 语句的 MANAGED BY SYSTEM 子句创建 | 使用 CREATE TABLESPACE 语句的 MANAGED BY DATABASE 子句创建 |
初始容器定义和位置 | 在创建自动存储器表空间时,您不需要提供容器列表。而是,数据库管理器在与该数据库相关联的所有存储路径中自动创建容器。数据在所有容器之间均匀地进行分割,以使各条存储路径的使用程度相同。 | 要求将容器定义为目录名。 |
|
空间的初始分配 |
|
根据需要进行。由于文件系统控制存储器的分配,因此降低了页面连续的可能性,这可能会影响某些类型的查询的性能。 | 在创建表空间时进行。
|
对表空间容器进行更改 |
|
创建后不进行更改,而不是在添加新数据分区时为其添加容器。 |
|
处理增加存储器需求 |
|
容器可以增大,直到达到文件系统所施加的容量限制为止。当任何一个容器达到其最大容量时,通常认为表空间已满。 | 可以手动地或自动地(需启用自动调整大小功能)对容器进行扩展,以使其超出最初分配的大小,直到达到文件系统所施加的约束为止。 |
能够将不同类型的对象放入不同的表空间 | 表、相关大对象 (LOB) 的存储器以及索引都可以驻留在不同的表空间中。 | (仅限于分区表)索引和索引分区与表数据可以驻留在不同的表空间中。 | 表、相关大对象 (LOB) 的存储器以及索引都可以驻留在不同的表空间中。 |
持续维护需求 |
|
NONE |
|
使用复原功能来重新定义容器 | 不能使用重定向复原操作来重新定义与表空间相关联的容器,这是因为数据库管理器将管理空间。 复原期间,可能会重新定义数据和容器。有关重新定义条件,请参阅复原自动存储器数据库期间重新平衡。 | 可以使用重定向复原操作来重新定义与表空间相关联的容器 | 可以使用重定向复原操作来重新定义与表空间相关联的容器 |
性能 | 类似于 DMS | 通常低于 DMS 和自动存储器,对于较大的表而言尤其如此。 | 通常高于 SMS |
自动存储器表空间是最容易设置和维护的表空间,建议用于大多数应用场合。在下列情况下,这些表空间尤其有益:
- 表较大,并且有可能迅速增大
- 您不想进行有关如何管理容器增长的常规决策。
- 您希望能够将不同类型的相关对象(例如表、LOB 和索引)存储在不同的表空间中,以便提高性能。