1. 索引
1) 需要建索引的列
a) where从句中频繁使用的关键字。
b) sql语句中频繁用于表连接的字段。
c) 可选择性高(重复值少)的字段。
2) 索引限制条件
a) where条件中索引列上使用了否定操作符(比如:<>,!=,is null,is (not) null),将不会使用索引,直接全表扫描,此时可以把部分否定操作符换成or形式或者union all的形式来执行。
or与in等效,or关键字是否使用索引,视情况而定。
b) 索引列上使用了函数或运算操作,则不会使用索引,转而全表扫描,但可以建立相应的函数索引来实现。
c) like索引列时,通配符出现在词首时不会使用索引,其他位置将使用。
d) 索引列与给定变量的类型不一致时,将不会使用索引(oracle 11g中,可以进行varchar2至number的自动转换,此种情况索引正常使用,反之则没有,故尽量保持类型一致,不要寄希望于oracle的自动转换,否则容易搞混淆)
e) 频繁修改的列上最好不要建立索引,维护索引的开销太大。
3) 组合索引
由多个列构成的索引。
如:create index idx_tmp on temp(col1,col2,col3,……)
引导列(leading column):col1列为引导列;
限制条件中包含先导列时,该限制条件才会使用该组合索引。因此组合索引中应该按照列的使用频繁程度从高到底排列。
4) 并行索引
a) 快速创建并行索引
create index idx

本文详细介绍了Oracle数据库中的索引和表分区优化策略,包括索引的创建条件、组合索引、并行索引及监控,以及表分区的原理、优势、类型,特别强调了范围分区、哈希分区和列表分区的应用。
最低0.47元/天 解锁文章
8607

被折叠的 条评论
为什么被折叠?



