自动存储器表空间、SMS 表空间和 DMS 表空间的比较
自动存储器表空间、SMS 表空间和 DMS 表空间提供了在不同环境中可能非常有益的不同功能。
重要信息: 对于用户定义的永久表空间,不推荐使用 SMS 表空间类型,在将来的发行版中可能会将其除去。 尚未不推荐将 SMS 表空间类型用于目录表空间和临时表空间。 有关更多信息,请参阅 不推荐使用 SMS 永久表空间。
重要信息: 对于用户定义的永久表空间,不推荐使用 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) 的存储器以及索引都可以驻留在不同的表空间中。 |
| 持续维护需求 |
|
无 |
|
| 使用复原功能来重新定义容器 | 不能使用重定向复原操作来重新定义与表空间相关联的容器,这是因为数据库管理器将管理空间。 复原期间,可能会重新定义数据和容器。 有关重新定义条件,请参阅 在自动存储器数据库的 RESTORE 期间重新平衡。 | 可以使用重定向复原操作来重新定义与表空间相关联的容器 | 可以使用重定向复原操作来重新定义与表空间相关联的容器 |
| 性能 | 类似于 DMS | 通常低于 DMS 和自动存储器,对于较大的表而言尤其如此。 | 通常高于 SMS |
自动存储器表空间是最容易设置和维护的表空间,建议用于大多数应用场合。 在下列情况下,这些表空间尤其有益:
- 表较大,并且有可能迅速增大
- 您不想进行有关如何管理容器增长的常规决策。
- 您希望能够将不同类型的相关对象(例如表、LOB 和索引)存储在不同的表空间中,以便提高性能。