SQL學習筆記(ORACLE內部儲存)

yunchat發表於2005-05-30

表索引及其相關知識及其在內部相關的物理儲存. 執行方式

[@more@]

1.        1. 資料庫中最小的物理儲存單位是塊(block, 9i預設是8k)

每個塊只能屬於一個表;一行資料插入時會佔用塊中的一些儲存,當塊不能再容納新資料時,則將啟用新的塊儲存資料

2.        2. 掃描記錄。是將塊全部載入記憶體後開始的。 如果記憶體不夠。將掃描完後繼續載入新塊。

3.        3. 建立的索引。也是按從小到大順序排列的。

4.        4. 資料庫表, 刪除記錄後。原來存放記錄的塊並不回收。但標記了未使用。實際操作時,   仍然會對那些塊進行掃描。 比如 原記錄有100W條記錄。刪除50W條記錄後, 仍然會和100W條記錄的效果差不多。 進行測試的時候尤其要注意。可以使用(TRUNCATE)進行刪除。     如何在ORALCE 中批次刪除資料 見:

再進行資料插入的時候,將可以使用原先存在的塊。

5.5. 對於索引的更新維護,如增加一條記錄將對索引也進行更新維護。由於索引是排序的。將把原塊破開,兩邊各增加1/2塊。

6. 6.建立索引的標準是那一列是否經常在where條件中出現,否則不應該建立,因為,每次表記錄的增加、刪除以及修改那個欄位值時,還要維護索引,增加了開銷;此處講的索引叫B_tree索引,在內部儲存中類似樹狀結構,有枝和葉,枝是oracle內部儲存的一些連線資料,葉才儲存實際的值

表中每條記錄只要那個列是非NULL值,在索引中都有一個條目(entry)來儲存(如上圖),類似於表在塊中一條條記錄儲存;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/118026/viewspace-799499/,如需轉載,請註明出處,否則將追究法律責任。

相關文章