Oracle聚簇表

Dodd發表於2014-10-10
一、Oracle簇表
1.1 Oracle簇表原理
聚簇:如果一組表有一些共同的列,則將這樣一組表儲存在相同的資料庫塊中;聚簇還表示把相關的資料儲存在同一個塊上。利用聚簇,一個塊可能包含多個表的資料。概念上就是如果兩個或多個表經常做連結操作,那麼可以把需要的資料預先儲存在一起。聚簇還可以用於單個表,可以按某個列將資料分組儲存。
更加簡單的說,比如說,EMP表和DEPT表,這兩個表儲存在不同的segment中,甚至有可能儲存在不同的TABLESPACE中,因此,他們的資料一定不會在同一個BLOCK裡。而我們有會經常對這兩個表做關聯查詢,比如說:select * from emp,dept where emp.deptno = dept.deptno .仔細想想,查詢主要是對BLOCK的操作,查詢的BLOCK越多,系統IO就消耗越大。如果我把這兩個表的資料聚集在少量的BLOCK裡,查詢效率一定會提高不少。
  比如我現在將值deptno=10的所有員工抽取出來,並且把對應的部門資訊也儲存在這個BLOCK裡(如果存不下了,可以為原來的塊串聯另外的塊)。這就是索引聚簇表的工作原理。

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

相關文章