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