自动的段空间管理是一种在数据段内部管理空闲空间的方法。该方法使用位图而不是使用空闲队列来追踪段内空闲和使用空间。这种方法具有以下特点:
*管理的便利。因为pctused和freelists等参数都是自动管理的。
*较好的空间利用。这种方法中所有的对象,特别是行的尺寸变化很大的对象的空间利用率会更有效。
*并行插入操作的性能也有较大的改进。
自动的段空间管理是使用位图(一个字节有8位,每一位有两种状态0和1)来管理磁盘空间的。在一个自动管理的表空间中所有的位图管理段包含了一个位图,该位图描述了段中每一块与可获得空间相关的状态。这个位图存放在一组单独的数据块中,这组数据源块被称为位图块。当插入新的一行时,服务器检索位图以找到一个具有足够空间的块。随着一个块中可获得空间的变化,新的状态要反映在位图中。
那么怎样才能配置自动的段空间管理呢?只能在表空间一级。而且是本地管理的表空间才能开启自动的段空间管理。只要在创建本地管理的表空间命令加入segment space management auto子句就可以完成自动的段空间管理配置。
如下:
SQL> create tablespace longshen
2 datafile '/oradata/law/law/longshen01.dbf' size 15m
3 extent management local
4 uniform size 1m
5 segment space management auto;
Tablespace created.
想要获取有关段的磁盘管理信息,可以使用的视图有:
dba_tablespaces,dba_data_files,dba_extents,dba_segments,dba_free_space