oracle10g系统管理之存储参数

11/20/2009来源:Oracle教程人气:3083

1.         INITIAL

对于字典管理表空间来说,INITIAL用于指定段所分配的第一个区的尺寸。对于本地管理表空间来说,如果MINEXTENTS等于1,数据库会使用INITIAL和区尺寸确定段的初始尺寸。假定本地管理表空间的区尺寸为5M,如果INITIAl为1M,那么会分配一个5M的区。如果INITIAL为7M,则分配两个5M的区。INITIAL只能在建立对象时设置,不能使用ALTER语句进行修改。

CREATE TABLE t1(cola INT) TABLESPACE user01

STORAGE(INITIAL 500k);

说明:使用user01表空间,假定user01创建时使用UNIFORM选项,并且区尺寸为128K.则t1表的段初始尺寸为500K。

2.         NEXT

对于本地管理表空间来说,因为数据库可以自动管理区,所以该参数没有太大意义。对于字典管理表空间来说,NEXT用于指定为段所分配的第二个区的尺寸。

3.         PCTINCREASE

对于本地管理表空间来说,因为数据库可以自动管理区,所以该参数没有太大意义。对于字典管理表空间来说,该参数可以指定从第三个区开始,每个区比前一个区所增长的百分比。

4.         MINEXTENTS

对于本地管理表空间来说,因为数据库可以自动管理区,所以该参数没有太大意义。对于字典管理表空间来说,MINEXTENTS用于指定为段所分配的初始区个数。

5.         MAXEXTENTS

对于本地管理表空间来说,因为数据库可以自动管理区,所以该参数没有太大意义。对于字典管理表空间来说,MINEXTENTS用于指定段可包含的最大区个数。

6.         FREELIST GROUPS

FREELIST GROUPS用于指定对象的空闲列表组个数,每个空闲列表组会占用一个数据块。Oracle建议为Oracle Real application Cluster的每个例程指定一个空闲列表组。需要注意,FREELIST GROUPS只能在段级指定。

7.         FREELISTS

FREELISTS用于指定每个空闲列表组上的空闲列表个数,空闲列表用于维护可插入数据的数据块。需要注意,FREELISTS只能在段级指定。

8.         假定建立字典管理表空间user02时,指定默认存储参数INITIAL和NEXT均为10K,PCTINCREASE为50.下面以建立表t2为例,说明在字典管理表空间上这些存储参数的作用。

CREATE TABLE t2(cola int) TABLESPACE user02

STORAGE(NEXT 20K MINEXTENTS 4);

执行以上语句后,Oracle会建立表T1,并且为其分配尺寸为110K的表段t2。因为MINEXTENTS为4,所以段T1包含四个区;因为建表时未指定INITIAL,所以第一个区会使用表空间的默认存储参数:10K。第二个区区20K,第三区:30K,第四区:50K。

9.         显示已分配区

建立数据对象时,Oracle会为数据对象分配相应的段。段是由一个或多个区组成的,并且一个区只能存放在一个数据文件上,而同一个段的不同区可以放在不同数据文件上。通过查询数据字典视图dba_extents,可以取得已分配区的详细信息。

SELECT extent_id,file_id,block_id,bytes

FROM dba_extents

WHERE owner=’SYS’ AND segment_name=’T1’;

10.     显示空闲区

当在表空间上建立数据对象时,Oracle会在表空间的剩余空间中位相应段分配空间。当段不足以容纳更多数据时,Oracle会通过分配去来扩展段。随着时间的推移,将导致表空间的剩余空间越来越少。

SELECT sum(bytes)FROM dba_free_space

WHERE tablespace_name=’USER01’;