用合适的函数索引来避免看似无法避免的全表扫描

记某高手的优化方法:用合适的函数索引来避免看似无法避免的全表扫描
 
原SQL:
•drop index idx_t1;
•create index idx_t1 on t1(object_name);
•select object_name,object_id from t1 where object_name like '%EMP';
 
 
调整后的SQL:
•select object_name,object_id from t1 where reverse(object_name) like reverse('%EMP');
•create index idx_fun_t1 on t1(reverse(object_name));
 
调整后的SQL大大降低了逻辑读,优化了性能。
 
附:
reverse函数说明:oracle 提供一个reverse函数,可以实现将一个对象反向转换,针对数据库内部存储的对象编码进行反转。在比如:数字,中文等.因为实现存储的并不是直接编码后的结果,而是经过某种内部转换后实现的,因此,在转换完成后,并不一定是自己想要的结果。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22308399/viewspace-749505/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22308399/viewspace-749505/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值