1、问题描述:
生产环境中使用模糊查询SQL语句如like '%A%' 导致全表扫描拖慢系统。
2、情景复现:
使用scott的emp2(emp表复制)表作为测试表,查询在ename字段包含O字母的所有员工。
前提:已经在emp2表的ename字段建立了索引 create index ind_emp2_ename on emp2(ename);
SCOTT> explain plan for select * from emp2 where ename like 'S%';
SCOTT> @?/rdbms/admin/utlxplp
SCOTT> explain plan for select * from emp2 where ename like '%O%';
SCOTT> @?/rdbms/admin/utlxplp
结论:模糊查询如果第一个是通配符,就不走索引
建议:模糊查询,想要索引生效,要给出前面的字符串
生产环境中使用模糊查询SQL语句如like '%A%' 导致全表扫描拖慢系统。
2、情景复现:
使用scott的emp2(emp表复制)表作为测试表,查询在ename字段包含O字母的所有员工。
前提:已经在emp2表的ename字段建立了索引 create index ind_emp2_ename on emp2(ename);
SCOTT> explain plan for select * from emp2 where ename like 'S%';
SCOTT> @?/rdbms/admin/utlxplp
SCOTT> explain plan for select * from emp2 where ename like '%O%';
SCOTT> @?/rdbms/admin/utlxplp
结论:模糊查询如果第一个是通配符,就不走索引
建议:模糊查询,想要索引生效,要给出前面的字符串
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31476473/viewspace-2152393/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31476473/viewspace-2152393/