Effective Oracle by Design - LMT的魔術64K空間

kamus發表於2005-02-02

這幾天在看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,說大不大,說小也不小,當然在現在越來越大的儲存裝置上看並不會有太大問題。

相關文章