分配区尺寸:自动分配与统一尺寸
每当Oracle对象需要增加尺寸时,空间就以区的方式添加给对象。在创建本地管理的表空间时,对区尺寸的管理有两种选择:
一种选择是让数据库自动选择区尺寸(通过选择AUTOALLOCATE选项),
另一种选择是指定表空间以统一尺寸区方式进行管理(UNIFORM选项)。
如果选择UNIFORM选项,则需要使用SIZE子句指定区的实际尺寸。如果省略SIZE子句,Oracle将以1MB的统一尺寸创建所有的区,但是,如果需要的话,可以选择更大的统一区尺寸。
创建了表空间之后,就不能改变区尺寸。如果认为表空间中的所有段的尺寸大致相同,并且认为它们会以一种相似的方式増长,可以选择UNIFORM区尺寸选项。为此,可以选择几个区尺寸,在这几个统一的区尺寸中选择一个创建所有表空间,并根据对象的尺寸将对象分配到各表空间中。
OracleDBA要操心一个段中的区的数量,其实更应该关心区的尺寸,因为区尺寸与段的读写性能有关。例如,如果选择很小的UNIFORM区尺寸,数据库就不能预取数据或进行多块读操作,因此会对性能产生负面影响。如果你希望自己设置区尺寸,Oracle提供了以下区尺寸选择的指导:
★ 小段64KB;
★ 中段1MB;
★ 大段64MB
如果选择AUTOALLOCATE选顼,Oracle将自动管理区尺寸。随着数据库的增长,区尺寸会从开始的64KB逐渐增加到64MB。数据库根据段的增长模式自动决定一个对象的新区尺寸是多少。也就是说,Oracle将随着对象的增长自动为其增加区尺寸。如果你不能确定一个对象的增长率并且愿意让Oracle处理的话,更应当使用自动分配特性。
注解 表空间区管理的默认选项为AUTOALLOCATE.
如果知道对象的精确空间需求,则可以选择UNIFORM区选项,这将使所有空间得以高效使用。例如,假如知道最大的表将消耗许多空间,也就是说需要非常大的区尺寸,则可为该表创建具有非常大的统一尺寸的表空间。
如果不能确定区的最佳尺寸,则可选择AUTOALLOCATE选项,令数据库决定区尺寸,但是可能会因为变化的区尺寸而浪费一些空间。
提示 Oracle建议,除非表空间中的所有对象大小都一样,否则应该使用AUTOALLOCATE特性。除了简化管理外,用AUTOALLOCATE选项定义区尺寸比用UNIFORM选项定义区尺寸更能节省大量的磁盘空间。




