실행됨
explain plan for
select ename, sal
from emp
where sal = '3000';
select * from table(dbms_xplan.display);
💡 숫자와 문자 비교 시, 숫자가 우선순위가 높아서
문자 -> 숫자로 변환함
select ename, sal
from emp
where sal like '30%';
sal -> 숫자
30% -> 문자
%
를 숫자로 바꿀 수 없기 때문에
sal
을 문자로 변환
💡 암시적 형변환이 발생하게 되면 SQL의 성능이 느려지게 됨
create table emp500
( ename varchar2(20),
sal varchar2(20) );
insert into emp500 values( 'SCOTT', '3000') ;
commit;
select * from emp500;
explain plan for
select ename, sal
from emp500
where sal = 3000;
select * from table(dbms_xplan.display);
여기서 where sal = '3000'
이렇게 쓰면 안됨
3000
은 숫자, '3000'
은 문자