日期:2014-05-16  浏览次数:20431 次

OracleDBA之路Storage Structure(二)

存储子句优先级
存储参数
可以在segment级别指定存储子句,以控制如何向segment分配区。
? 除了 MINIMUM EXTENT和 UNIFORM SIZE表空间参数外,在segment级别指定的任何存储参数覆盖在表空间级别设置的相应选项。
? 如果没有在segment级别明确设置存储参数,那么存储参数缺省设置为在表空间级别所设置的值。
? 如果没有在表空间级别明确设置存储参数,那么将使用Oracle 服务器系统的缺省设置。
其它注意事项:
? 如果存储参数改变,新选项只适用于尚未分配的区。
? 某些参数无法在表空间级别指定,而只能在segment级别指定。
? 如果指定了表空间的最小区大小,则该大小适用于将来分配给该表空间内segment的所有区。

Extent 的 allocated 和 deallocated
extent 不能跨datafile,一个表空间可以有多个数据文件组成,一个segment不可以跨表空间,可以跨datafile,一个extent 只能存储在一个datafile
extent是表空间内某个segment使用的一块空间。
当segment处于以下情况时分配extent:
– 已创建
– 已扩展
– 已改变
当segment处于以下情况时回收extent:
– 已删除
– 已改变
– 已截断

创建表空间时,表空间中的数据文件包含一个标头,它是文件中的第一个块或前几个块。创建segment时,从表空间的空闲区为这些segment分配空间。segment所使用的连续空间称为 “已用区”。当segment释放空间时,将把所释放的区添加到表空间的可用空闲区池中