oracle合理的使用索引原则

原则:
首先,看是否用上索引。对于该使用索引而没有用上索引的sql,应该想办法用上索引,避免全表扫描。
其次,看是否用上了合理的索引,特别是复杂的sql语句,当其中where子句包含多个带有索引的字段是,更应该注意索引的选择是否合理。错误的索引不仅不会带来性能的提高,相反往往会导致性能的降低。
任何对列的操作都可能导致全表扫描(函数,表达式计算等),必须要使用建议建立相应的函数索引。
避免不必要的类型转换,包括隐式的转换。
增加查询的范围,限制全范围的搜索。
oracle优化器无法使用上合理索引的情况下,查看统计信息,(hint)
频繁delete,需要重建索引或碎片整理
删除无用的索引,避免对执行计划产生影响
避免在索引列上使用is null 和is not null
正确使用组合索引,使用复合索引时,与该复合索引的组合顺序有关(越是考前,用的代价越少)


常用优化器提示
全表扫描/*+ full([table_name])*/
指定索引 /*+index(table_NAME[INDEX])*/
禁止指定索引 /*+NO_index(table_NAME[INDEX])*/
强制指定连接方式/*+use_nl(table_name table_name)*/、/*+use_merge(table_name table_name)*/、/*+use_hash(table_name table_name)*/
指定驱动表/*+ leading(table_name)*/


确定索引使用情况
v$sql_plan,存储了共享的sql执行计划
explain plan 预执行计划,sqlplus 或者pl/sql developer都可以查看
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值