tablespace extent management type:
Local : 9i默认
Directory: 8i默认 ,通过uet$, fet$字典管理。
当为local时, segment的参数initial extent, next extent将失效。
当我们在create tablespace时,指定initial 和 next参数时,这些参数和建立好tablespace的initial, next比较, 你会发现, 值并不相等。
在 complibilty 为 9.0.0.1以上,执行:
SQL> create tablespace test_tbs_2 datafile 'C:\ORACLE\ORADATA\MYDB\TEST_TBS_
.dbf' size 5m default storage(initial 128k next 128k minextents 1 maxextents
);
Tablespace created.
SQL> select tablespace_name , initial_extent, next_extent, extent_management
location_type from dba_tablespaces;
TABLESPACE_NAME INITIAL_EXTENT
------------------------------------------------------------ --------------
NEXT_EXTENT EXTENT_MANAGEMENT ALLOCATION_TYPE
----------- -------------------- ------------------
SYSTEM 16384
16384 DICTIONARY USER
...
TABLESPACE_NAME INITIAL_EXTENT
------------------------------------------------------------ --------------
NEXT_EXTENT EXTENT_MANAGEMENT ALLOCATION_TYPE
----------- -------------------- ------------------
TEST_TBS_2 65536
LOCAL SYSTEM
13 rows selected.
上例中, 我们希望initial extent 为 128k, 但事实是为64k, 为什么呢?
其实当指定extent为local管理后, 其实就是把extent管理交给oracle。oracle按照自己的规则定义了extent的大小。一般前64个extent为64K,第65个extent的大小就为1M,再下面的规模就是8M, 64M。 最大就为64M。
但是要注意,是否local属性的tablespace下的所有segment的第一个extent都为64K呢? 当然不是,我们除了可使用uniform属性来定义外,还可以在创建表时指定initial属性, 如果您希望您的extent大于64K, 请指定initial大于1M,否则extent还是为64K。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26684/viewspace-232364/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26684/viewspace-232364/