oracle学习笔记(9)——逻辑存储结构——区

来源:互联网 发布:输入汉语拼音软件 编辑:程序博客网 时间:2024/05/16 00:58

1、区的概念:

      区是由一系列连续的数据块构成的逻辑存储单元,是存储空间分配与回收的最小单位。当创建一个数据库对象时,Oracle为对象分配若干个区,以构成一个段来为对象提供初始的存储空间。当段中已分配的区都写满后,Oracle会为段分配一个新区,以容纳更多的数据。

2、区的管理

(1)区的分配

          在本地管理方式的表空间中,自动进行区的分配。可以通过使用UNIFORM选项,指定所有段的初始区和后续区具有统一大小,也可以使用AUTOALLOCATE选项指定由Oracle自动决定后续区大小。用户不能通过其他参数来干预区的分配。

          在字典管理方式的表空间中,创建表空间时可以使用DEFAULTSTORAGE子句设置存储参数,也可以在该表空间定义对象时通过STORAGE子句设置存储参数。如果在定义对象时没有设置存储参数,则继承表空间存储参数的设置。

         示例:

         创建一个本地管理方式的表空间,区分配采用自动扩展方式进行。

         SQL>CREATE TABLESPACE ORCLTBS6 DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS6_1.DBF' SIZE 20M

                   EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

         创建一个本地管理方式的表空间,区分配采用固定大小,每个区5 MB。

         SQL>CREATE TABLESPACE ORCLTBS7 DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS7_1.DBF' SIZE 10M

                   EXTENT MANAGEMENT LOCAL UNIFORM SIZE 5M;

(2)区的回收

          通常分配给段的区将一直保留在段中,不论区中的数据块是否被使用。只有当段所属的对象被删除时,段中所有的区才会被回收。此外,在一些特殊情况下,也能够回收未使用的区。例如,如果在创建回滚段时指定了OPTIMAL关键字,Oracle会定期回收回滚段中未使用的区。