posts - 262,  comments - 221,  trackbacks - 0
          1.Oracle數據塊與操作系統數據塊

          Oracle數據塊和操作系統數據塊不同,它通常是操作系統數據塊大小的若干倍(最高為5倍)。假如操作系統每次讀寫磁盤的數據塊是512K,而Oracle的數據塊大小為其2倍,那么數據庫中參數:DB_BLOCK_SIZE = 512 * 2。也就是說Oracle每次讀寫磁盤的I/O大小是1M。將每次讀入1M數據或寫入1M數據。

          2.Oracle數據塊格式

          Oracle的數據塊中包含了以下信息:

          1.基本信息:塊的地址和數據類型
          2.表信息:存儲的數據是那個表的
          3.行信息:存儲的是哪些數據(可多條)
          4.數據區:持久化的信息
          5.空白區:為用于數據存儲的空白區域

          3.Oracle何時對數據塊碎片進行整理

          由于刪除或更新而被釋放出來的空間可能是不連續的。Oracle會在以下兩種情形下對這些不連續的空間進行歸并:

           ①當一個Insert,update語句試圖使用一個剩余空間不足的數據塊時。
           ②剩余空間被分散成多個碎片而無法連續利用

          其它情況下Oracle不會對數據塊的碎片進行整理。因為這種對碎片的整理,歸并工作比起數據寫入更新可能更加耗時。

          4.PCTFREE、PCTUSED參數

          PCTFREE和PCTUSED參數允許用戶對Oracle數據塊的空白區(Free space)進行管理。

           ①PCTFREE:保留的可用空白空間大小
           ②PCTUSED:可用的最大數據空間

          PCTFREE: 只要剩余空白空間降低到PCTFREE指定的水平,將不允許新記錄插入,而僅允許本記錄更新
          PCTUSED:只要已使用空間達到PCTUSED指定的水平,將不允許新記錄插入,而僅允許本記錄更新

          這兩個參數其實是兩種不同的控制可用空間說法

          5.插入操作與PCTFREE參數

          PCTFREE僅對Insert操作有用,但對Update無效。也就是說當空用空間降低到PCTFREE指定的水平時,將不再允許Insert操作,但Update操作可以照常使用剩余空間。

          Oracle為每個段維護一或多個空用鏈表,這些鏈表上的對象是每一個未分配的數據塊,已經分配出去但剩余空間被PCTFREE大的數據塊。這些數據塊都是可以被用于插入新記錄的。

          假如一個數據塊的剩余空間比PCTFREE指定的要小,但又達到PCTUSED的水平。那么Oracle將把該數據塊從可用鏈表上摘下來,因為該數據塊肯定是不能用于再插入新記錄的了(這個時候就需要進行前面我們提到的數據塊碎片整理了)。

          6.刪除、更新操作與PCTUSED參數

          如果執行了一個Delete或Update語句后,Oracle會檢查當前該數據塊的可用空間。判斷其是否比PCTUSED指定的值小,如果是的話將其掛到可用鏈表上作為第一個可分配空間。

          7.PCTFREE與PCTUSED參數配合使用

           ①插入操作前檢查數據塊的PCTFREE值
           ②刪除或更新操作后檢查數據塊的PCTUSED值

          如果PCTFREE值大于指定的水平,或PCTUSED值小于指定的水平則作為可分配空間掛到Free list鏈表上。



          -------------------------------------------------------------
          生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
          posted on 2008-12-21 14:58 Paul Lin 閱讀(656) 評論(0)  編輯  收藏 所屬分類: Oracle Concept
          <2008年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 得荣县| 华安县| 柳江县| 鹤庆县| 金乡县| 喜德县| 邓州市| 阿巴嘎旗| 菏泽市| 台北市| 湖口县| 永吉县| 将乐县| 荥阳市| 宜昌市| 唐河县| 周宁县| 繁昌县| 疏勒县| 腾冲县| 云浮市| 偃师市| 蕲春县| 板桥市| 平顶山市| 施秉县| 和林格尔县| 灌南县| 韶关市| 定兴县| 黎川县| 浏阳市| 安龙县| 祥云县| 吉隆县| 兴仁县| 宁城县| 白银市| 于田县| 汽车| 来安县|