这几天在看Tom的Effective Oracle by Design
陆续作一些笔记吧
SQL> create tablespace ts_test datafile size 10240k uniform size 1024k;
Tablespace created
Executed in 1.021 seconds
SQL> select bytes/1024 from dba_free_space where tablespace_name='TS_TEST';
BYTES/1024
----------
9216
Executed in 0.07 seconds
SQL> select 10240-1024 from dual;
10240-1024
----------
9216
Executed in 0.03 seconds
SQL> alter database datafile 'C:/ORACLE/ORADATA/ORCL/O1_MF_TS_TEST_0ZZF1Z2Y_.DBF' resize 10304k;
Database altered
Executed in 0.07 seconds
SQL> select bytes/1024 from dba_free_space where tablespace_name='TS_TEST';
BYTES/1024
----------
10240
Executed in 0.02 seconds
解释:当一个表空间为LMT类型,管理extent的bitmap部分占据数据文件头部的64K空间,我们在设计一个数据文件大小的时候最好能够考虑这个64K的部分,否则可能会浪费掉一个extent的空间。uniform size假设是10M,一个表空间有20个数据文件,那么会浪费(10240K-64K)*20=198.75M,说大不大,说小也不小,当然在现在越来越大的存储设备上看并不会有太大问题。