Effective Oracle by Design - LMT的魔术64K空间

这几天在看TomEffective 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,说大不大,说小也不小,当然在现在越来越大的存储设备上看并不会有太大问题。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页