Oracle PL\SQL操作(七)聚簇

來源:互聯網
上載者:User

         叢集索引確定表中資料的物理順序。叢集索引類似於電話簿,後者按姓氏排列資料。由於叢集索引規定資料在表中的實體儲存體順序,因此一個表只能包含一個叢集索引。但該索引可以包含多個列(複合式索引),就像電話簿按姓氏和名字進行組織一樣。 
        叢集索引對於那些經常要搜尋範圍值的列特別有效。使用叢集索引找到包含第一個值的行後,便可以確保包含後續索引值的行在物理相鄰。例如,如果應用程式執行的一個查詢經常檢索某一日期範圍內的記錄,則使用叢集索引可以迅速找到包含開始日期的行,然後檢索表中所有相鄰的行,直到到達結束日期。這樣有助於提高此類查詢的效能。同樣,如果對從表中檢索的資料進行排序時經常要用到某一列,則可以將該表在該列上聚集(物理排序),避免每次查詢該列時都進行排序,從而節省成本。 

 
       非叢集索引與課本中的索引類似。資料存放區在一個地方,索引儲存在另一個地方,索引帶有指標指向資料的儲存位置索引中的項目按索引索引值的順序儲存,而表中的資訊按另一種順序儲存(這可以由叢集索引規定)。如果在表中未建立叢集索引,則無法保證這些行具有任何特定的順序。 
       與使用書中索引的方式相似,在搜尋資料值時,先對非叢集索引進行搜尋,找到資料值在表中的位置,然後從該位置直接檢索資料。這使非叢集索引成為精確匹配查詢的最佳方法,因為索引包含描述查詢所搜尋的資料值在表中的精確位置的條目。如果基礎資料表使用叢集索引排序,則該位置為聚集索引值;否則,該位置為包含行的檔案號、頁號和槽號的行   ID   (RID)。例如,對於在   emp_id   列上有非叢集索引的表,如要搜尋其僱員   ID   (emp_id),SQL   Server   會在索引中尋找這樣一個條目,該條目精確列出匹配的   emp_id   列在表中的頁和行,然後直接轉到該頁該行。  
注意:叢集索引會降低   insert,和update操作的效能,所以,是否使用叢集索引要全面衡量。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.