Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10202500
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: Oracle

2011-12-27 13:25:07

Oracle中LIKE语句优化
[日期:2011-04-03] 来源:Linux社区  作者:zftang
 
 
1。尽量不要使用 like '%%'
 
2。对于 like '%' (不以 % 开头),Oracle可以应用 colunm上的index
 
3。对于 like '%…' 的 (不以 % 结尾),可以利用reverse + function index 的形式,变化成 like '%'
 
建测试表和Index,注意,重点在于带reverse的function index。同时,一定要使用CBO才行
 

create table test_like as select object_id,object_name from dba_objects;
 
-------建立测试表
 
create index test_like__name on test_like(object_name);
 
------建立索引
 
create index test_like__name_reverse on test_like(reverse(object_name));
 
------建立反向索引
 
analyze table test_like compute statistics for table for all indexes;
 
------对表进行分析
 
都过SQLPLUS连接到数据,一定是SQLPLUS,因为下面有写命令在PLSQL的命令行中不被支持;
 
set autotrace trace exp
 
-----设定SQL跟踪
 
set linesize 2000
 
-------设定输出宽度
 
select * from test_like where object_name like 'AS%';
 
使用了索引
 
select * from test_like where object_name like '%S';
 
未使用索引
 
select * from test_like where reverse(object_name)like reverse('%AS');
 
使用了索引
 
 
 

本篇文章来源于 Linux公社网站()  原文链接:
阅读(1746) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~