Oracle学习(1)——BLOCK
生活随笔
收集整理的這篇文章主要介紹了
Oracle学习(1)——BLOCK
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
BLOCK
BLOCK是ORACLE下I/O的最小單位(換句話說,一次讀出的數據至少是一個BLOCk)。 ORACLE的BLOCk是由一個或多個OS BLOCk組成的。 ORACLE的BLOCK是在創建TABLESPACE的時候就劃分好的,之后分配使用。 ORACLE的初始化參數DB_BLOCK_SIZE就是指定BLOCK大小的。? BLOCK的結構:HEADER, FREE SPACE , DATA SPACE。 HEADER部分和DATA SPACE從BLOCK的兩頭向中間擴展,中間未用的部分就是FREE SPACE。 有4個參數控制著BLOCK的分配:INITTRANS, MAXTRANS, PCTFREE, PCTUSED。 描述如下:BLOCK下包含數據允許最大的操作事務個數取決于BLOCK某種空間(TRANSACTION SLOT)的分配。允許的事務越多,需要分配越多的TRANS SLOT。INITTRANS和MAXTRANS就是規定這個TRANSACTION SLOT的。 PCTFREE和PCTUSED是規定DATA SPACE和FREE SPACE之間關系的:當一個空的BLOCK開始寫入數據后,DATA SPACE部分越來越大,同時,FREE SPACE越來越小。當數據寫入到一定程度時,FREE SPACE占全部空間等于PCTFREE時,這個BLOCK就不能再寫入新的記錄了。剩下的這部分(PCTFREE*DB_BLOCK_SIZE)空間用于給現有記錄update使用。后續的insert會導致從FREE BLOCK列表中拿另外一個BLOCK完成。當BLOCK中記錄通過delete時,BLOCK的DATA SPACE逐漸減少。 如果BLOCK此時是一個FULL BLOCK,當DATA SPACE降低置DB_BLOCK_SIZE*PCTUSED后,ORACLE就認為這個BLOCK是個FREE的BLOCK,就會放入FREE LIST,可以繼續插入數據了。可見,PCTFREE和PCTUSED是兩個水位線,用來限制FREE、USED兩個空間分隔線的位置的。 有兩種BLOCK的空間管理模式:AUTO和MANUL。 使用前者,ORACEL會自動管理INITTRANS, MAXTRANS, PCTFREE, PCTUSED這幾個參數。 如下是創建一個AUTO管理的TABLESPACE: CREATE TABLESPACE data02 DATAFILE '/u01/oradata/data02.dbf' SIZE 5M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64K SEGMENT SPACE MANAGEMENT AUTO; ———————————————————————————————————————————————????????? 區extent EXTENTS是若干連續的BLOCKS,ORACLE每次給SEGMENT擴空間的時候,是以EXTENTS為單位的。 在建TABLE/INDEX時幾個參數決定了EXTENTS的分配特性:INITIAL EXTENT(單位:K)、NEXT EXTENTS(單位:K)、PCT INCREASE、MIN EXTENTS(單位:個)、MAX EXTENTS(單位:個)。 基本過程是這樣:當SEGMENT創建時,分配的第一個EXTENTS大小為INITIAL EXTENT參數指定的大小。 如果SEGMENT的空間不夠,會分配第2個、第3個...EXTENTS。 第2個EXTENT的大小為NEXT EXTENTS, 第3個的大小為NEXT EXTENTS*(1+PCT INCREASE), 每次增加PCT INCREASE,以此類推。? 每個TABLESPACE都有一個FREE EXTENTS LIST。 當需要新的EXTENTS時,ORACLE會從這個LIST中取一個FREE EXTENT分配給需要的SEGMENT。 當SEGMENT釋放空間時,空閑的EXTENTS會加入到這個LIST中以便后續使用。 段segment CREATE TABLE/INDEX 的STORAGE字句,用來指定存儲特性。如果沒有指定,按照TABLESPACE的STORAGE屬性來,如果TABLESPACE也沒有指定STORAGE屬性,則按照ORACLE的默認值來。 通常,一個TABLE對應一個SEGMENT(PARTITION的除外)。 一個SEGMENT只能在一個TABLESPACE內部。 對于PARTITIONED表每個PARTITION占一個SEGMENT,每個SEGMENT可以在不同的TABLESPACE中。?
轉載于:https://blog.51cto.com/huangxiaohui91/397144
總結
以上是生活随笔為你收集整理的Oracle学习(1)——BLOCK的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QQ无法安装,不用着急,用毒霸2011来
- 下一篇: 诗意风景唯美的网名,五字押韵唯美古风网名