oracle在建立本地管理的表空间的时候,存在两种模式系统管理模式以及统一尺寸模式,
当使用统一尺寸模式时,存在一个64K的问题,测试如下(摘自oracle高效设计):
1。建立表空间:
CREATE TABLESPACE aaa DATAFILE
SIZE 100M AUTOEXTEND OFF
LOGGING
PERMANENT
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 5M
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
2。检查自由空间:
SELECT sum(bytes/1024/1024) free_space
FROM dba_free_space
WHERE tablespace_name = 'AAA'
FREE_SPACE
----------
95
3. 计算100M+64K
select 100*1024+64 from dual ;
100*1024+64
-----------
102464
4.增加表空间到102464K:
ALTER DATABASE DATAFILE '+ASM_DISK1/orcl/datafile/aaa.306.616069939'
RESIZE 102464K;
5.再检查自由空间:
SELECT sum(bytes/1024/1024) free_space
FROM dba_free_space
WHERE tablespace_name = 'AAA'
FREE_SPACE
----------
100
可以说明在建立统一尺寸大小的表空间时,要建立的空间大小要uniform size大小倍数的基础加上64K,这样才能充分使用空间。