DB2 10.5 for Linux, UNIX, and Windows

自动存储器表空间、SMS 表空间和 DMS 表空间的比较

自动存储器表空间、SMS 表空间和 DMS 表空间提供了在不同环境中可能非常有益的不同功能。

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