1. 普通表转分区表(大表-2G,多于1000万条记录)
2. 索引(减少非索引扫描)
建立索引在约束条件列,选择性高列,被驱动表(内表)连接列(驱动表的连接列不一定)
结果集在总行数的2%-4%,应建索引(编号,日期,外键)
函数索引- QUERY_REWRITE_INTEGRITY = TRUSTED,QUERY_REWRITE_ENABLED = TRUE,
bitmap/bitmap join 索引- STAR_TRANSFORMATION_ENABLED=TRUE,bitmap join index 将join信息存储在index里,适用于dim/fact join)
本地索引-索引字段=分区字段,不保证唯一性,
复合索引-leading column/Selectivity
3. 减少远程数据库(DB link-collocated in line view~subquery in remote db)的访问(采用MQT或临时表,实现hash join)
4. 分拆存储过程,以便并行执行。
5. 归档部分历史数据到备份表
6. 加大commit的行数
7. Select/fetch BULK COLLECT INTO,FORALL insert/delete/update
8. Hints(CBO,统计信息要更新)
9. Merge 代替 update and insert(大表更新大表)
10. 消除占位操作和开关操作(如果存在)
11. 消除绑定变量(会导致执行计划不是最优)
12. 使用Star query(bitmap index in fact table, STAR_TRANSFORMATION_ENABLED=TRUE)