Oracle幾種表的優缺點總結

Oracle 幾種表的優缺點總結


    





 從理論上來看,根本就不存在一種可以知足全部讀取要求的數據存儲方式oracle


表的設計成就英雄,沒有最高的技術只有最合適的技術。ide

技術其實並不難,最難的是如何選擇。設計

oracle 中的表大概分爲如下5類:日誌

① 普通堆表blog

② 全局臨時表 又分爲 基於會話的全局臨時表 和 基於事務的全局臨時表排序

③ 分區表索引

④ 索引組織表接口

⑤ 簇表事務





1,普通表(heap table):適合大部分設計場景,有優勢也有缺點。
優勢:
a,語法簡單方便
b,適合大部分場景
缺點:
a,更新日誌開銷較大
b,Delete沒法釋放空間(HWM High Water Mark不降低)
c,表記錄太大檢索太慢
d,索引回表讀開銷很大
e,即使有序插入,也很難保證有序讀出it

2,全局臨時表:適合接口表設計
優勢:
a,高效刪除
b,產生不多的日誌
c,不一樣的SESSION獨立,不產生鎖
缺點:
a,語法特別
b,數據沒法獲得有效的保護
全局臨時表分兩類:
一個是基於會話的全局臨時表(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;

3,分區表:尤爲適合日誌表,很是大的表
優勢:
a,有效的分區消除 (分區裁剪)
b,高效的記錄清理(便可以對某一個分區進行truncate)
c,高效的記錄轉移(分區交換)
缺點:
a,語法複雜
b,分區過多對系統有必定的影響

4,索引組織表:適合極少更新的表
優勢:
a,表就是索引,能夠避免回表
缺點:
a,語法複雜
b,更新開銷較大

5,蔟表:使用頻繁關聯查詢的多表
優勢:
a,能夠減小或避免排序
缺點:
a,語法複雜
b,表更新開銷大

1,普通表(heap table):適合大部分設計場景,有優勢也有缺點。
優勢:
a,語法簡單方便
b,適合大部分場景
缺點:
a,更新日誌開銷較大
b,Delete沒法釋放空間(HWM High Water Mark不降低)
c,表記錄太大檢索太慢
d,索引回表讀開銷很大
e,即使有序插入,也很難保證有序讀出

2,全局臨時表:適合接口表設計
優勢:
a,高效刪除
b,產生不多的日誌
c,不一樣的SESSION獨立,不產生鎖
缺點:
a,語法特別
b,數據沒法獲得有效的保護
全局臨時表分兩類:
一個是基於會話的全局臨時表(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;

3,分區表:尤爲適合日誌表,很是大的表
優勢:
a,有效的分區消除 (分區裁剪)
b,高效的記錄清理(便可以對某一個分區進行truncate)
c,高效的記錄轉移(分區交換)
缺點:
a,語法複雜
b,分區過多對系統有必定的影響

4,索引組織表:適合極少更新的表
優勢:
a,表就是索引,能夠避免回表
缺點:
a,語法複雜
b,更新開銷較大

5,蔟表:使用頻繁關聯查詢的多表優勢:a,能夠減小或避免排序缺點:a,語法複雜b,表更新開銷大

相關文章
相關標籤/搜索