兩個常見的oracle索引

來源:互聯網
上載者:User

B*樹索引

 

樹最底層的塊稱為葉子節點,其中包含各個索引鍵以及一個rowid。索引的葉子節點構成一個雙向鏈表。一旦發現要從葉子節點中的哪裡“開始”,執行值得有序掃描就會很容易。

壓縮鍵索引:每個鍵條目分解為“首碼”和“尾碼”兩部分,首碼建立在串聯索引的前幾列上,尾碼在索引鍵的後幾列上,是首碼所在索引條目中的唯一部分。

如果你有一組列,其中一些列按升序排序(ASC),另外一些列按降序排序(DESC),此時可以指明使用降序索引。

索引用於訪問表中的行:通過讀索引來訪問表中的行。此時你希望訪問表中很少的一部分
行(只佔一個很小的百分比在總行數的1%~20%之間)。
索引用於回答一個查詢:索引包含了足夠的資訊來回答整個查詢,我根本不用去訪問表。
在這種情況下,索引則用作一個“較瘦“版本的表。

聚簇因子:通過索引讀取整個表時對錶執行的邏輯I/O次數。USER_INDEXES 視圖中的CLUSTERING_FACTOR列:

如果這個值與塊數接近,則說明表相當有序,得到了很好的組織,在這種情況下,同一個葉子
塊中的索引條目可能指向同一個資料區塊上的行。
q 如果這個值與行數接近,表的次序可能就是非常隨機的。在這種情況下,同一個葉子塊上的索
引條目不太可能指向同一個資料區塊上的行。

當Oracle 對索引結構執行區間掃描時,如果它發現索引中的下一行於前一行在同一個資料庫塊上,就不會再執行另一個I/O從緩衝區快取中獲得表塊。

索引並不一定總是合適的存取方法。最佳化器也許選擇不使用索引。對於一個表來說,一般只有一個索引能有合適的聚簇因子!表中 的行可能只以一種方式排序。如果你認為資料物理聚簇很重要,可以考慮使用一個IOT、B*樹聚簇,或者在連續地重建表時考慮散列聚簇。

一個因素是通過索引需要訪問表中多少資料(佔多大的百分比),另一個因素是資料如何布局。

 

位元影像索引

用一個索引鍵條目儲存指向多行的指標。

用於行集中不同項的個數除以行數應該是一個很小的數(接近於0)。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.