where 절에 다음과 같은 검색조건이 있으면 인덱스를 엑세스 하지 못합니다.
실습 예제1. 커미션이 null인 사원들의 이름과 커미션을 출력하시오!
create index emp_comm on emp(comm);
select ename, comm
from emp
where comm is null;
select * from table(dbms_xplan.display_cursor(null, null, 'ALLSTATS LAST'))
문제 22. 아래 sql을 튜닝하시오
튜닝 전
select ename, comm
from emp
where comm is not null;
튜닝 후
create index emp_comm_nvl on emp(nvl(comm,-1));
select /*+ index emp emp_comm_nvl */ ename, comm
from emp
where nvl(comm,-1)=-1;
실습 문제2. 이름과 끝자리가 T로 끝나는 사원들의 이름과 월급을 출력하시오!
@demo
create index emp_ename on emp(ename)
select ename, sal
from emp
where ename like '%T'
select * from table(dbms_xplan.display_cursor(null, null, 'ALLSTATS LAST'));
문제22. 이름의 끝글자가 T로 끝나는 사원들의 이름을 출력하는 sql을 like가 아니라 substr로 작성해서 출력하시오!