聚簇表使用方針

來源:互聯網
上載者:User

使用下面的方針決定是否使用聚簇表:

  • 經常被應用的串連語句訪問的表可以使用聚簇表
  • 如果應用只是偶爾地使用表串連,或者頻繁修改串連列的值,則不要使用聚簇表。修改一行的聚簇索引值比修改非聚簇表的值花費更長的時間,因為Oracle可能為了維護聚簇而把被修改的行從一個塊遷移到另一個塊。
  • 如果應用經常對聚簇中的一個表進行全表掃描,則不要使用聚簇表。對聚簇表的全面掃描會比對非聚簇表的全表掃描花費更長的時間。因為表被儲存在一起,Oracle可能要讀取更多的塊。
  • 如果經常查詢一個主表的記錄和與之對應的子表記錄,這種主子表可以放到一個聚簇中。子表和主表記錄被儲存在相同的資料區塊,因此當查詢它們的時候將被一起讀到記憶體中,Oracle會執行更少的I/O。
  • 如果經常查詢與同一主表記錄相關聯的許多子表記錄,單獨把子表格儲存體在一個聚簇中。這種方法改善與同一主表記錄相關聯的子表記錄的查詢效能,同時不會降低對主表全表掃描的效能。還有一種可選則的方法是使用索引組織表。
  • 如果聚簇中所有表的同一聚簇索引值大於一個或兩個Oracle塊,則不要使用聚簇表。為了訪問聚簇中的一行,Oracle要讀取包含這行索引值的所有塊。如果這些行佔用了多個塊,則訪問單一行將比訪問非聚簇表裡的相同行需要更多的讀取次數。
  • 當每一個聚簇索引值所對應的行數有很大不同時不要使用聚簇表。這將造成低基數索引值的空間浪費,還將造成與高基數索引值的衝突,會降低效能。

要針對應用的要求來考慮使用聚簇的優缺點。例如,你需要確定串連語句的效能提升是否超過了修改聚簇值的效能下降,你可能還需要做實驗比較聚簇和單獨儲存所花費的處理時間。

聯繫我們

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