Oracle的五种表的优缺点概述
普通表(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. 表更新的开销较大。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。