Oracle的五種表的優(yōu)缺點概述
普通表(heap table)普通表適用于大多數(shù)設(shè)計場景,具有一些優(yōu)點和缺點。優(yōu)點:1. 語法簡單方便。2. 適合大多數(shù)場景。缺點:1. 更新日志開銷較大。2. Delete操作無法釋放空間(HWM
普通表(heap table)
普通表適用于大多數(shù)設(shè)計場景,具有一些優(yōu)點和缺點。
優(yōu)點:
1. 語法簡單方便。
2. 適合大多數(shù)場景。
缺點:
1. 更新日志開銷較大。
2. Delete操作無法釋放空間(HWM High Water Mark不下降)。
3. 表記錄過大會導(dǎo)致檢索變慢。
4. 索引回表讀的開銷很大。
5. 即使有序插入,也很難保證有序讀出。
全局臨時表
全局臨時表適用于接口表設(shè)計。
優(yōu)點:
1. 高效刪除。
2. 產(chǎn)生很少的日志。
3. 不同SESSION獨立,不會產(chǎn)生鎖。
缺點:
1. 語法復(fù)雜。
2. 數(shù)據(jù)無法得到有效的保護。
全局臨時表分為兩類:基于會話的全局臨時表(on commit preserve rows)和基于事務(wù)的全局臨時表(on commit delete rows)。以下是創(chuàng)建例子:
```
create global temporary table T_TMP_SESSION on commit preserve rows as select * from dba_objects;
create global temporary table T_TMP_TRANSACTION on commit delete rows as select * from dba_objects;
```
分區(qū)表
分區(qū)表特別適用于日志表和非常大的表。
優(yōu)點:
1. 有效的分區(qū)消除(分區(qū)裁剪)。
2. 高效的記錄清理(可以對某一個分區(qū)進行truncate)。
3. 高效的記錄轉(zhuǎn)移(分區(qū)交換)。
缺點:
1. 語法復(fù)雜。
2. 分區(qū)過多會對系統(tǒng)產(chǎn)生一定的影響。
索引組織表
索引組織表適合極少更新的表。
優(yōu)點:
1. 表即為索引,可以避免回表操作。
缺點:
1. 語法復(fù)雜。
2. 更新開銷較大。
蔟表
蔟表適用于需要頻繁關(guān)聯(lián)查詢的多表情況。
優(yōu)點:
1. 可以減少或避免排序操作。
缺點:
1. 語法復(fù)雜。
2. 表更新的開銷較大。