그건 오라클 옵티마이저가 가장 최적이라고 판단되는 경로를 선택해서 수행하니까 Where 절들 간의 우선순위 같은 것은 존재하지 않습니다. 단지 사용자가 힌트 같은 것으로 어느 정도 조절은 가능합니다. 하지만 대부분의 경우는 옵티마이저에게 맡겨두는 게 낫습니다.
어떤 순서로 이루어지는지를 실제로 보시려면 EXPLAIN PLAN 문을 이용하시면 됩니다.
>>android2 님께서 쓰시길<<
:: 엄청 많은 수의 record가 들어있는 table에서 like 연산을 이용하여
:: 데이터를 뽑아내려고 합니다.
:: 제일 확실한 방법은 실제로 dummy data를 많들어 넣어서 테스트 해보는 것인데,
:: 그것이 여의치 않군요.
::
:: like 연산전에 미리 다른 int column을 이용하여
:: 한차례 걸러낸 후 like 연산을 하였으면 하는데,
:: where절 이후의 연산 순서가 어떻게 되죠?
::
:: 즉,
::
:: select * from test_table where str_field like '%hahaha%' and int_field=3;
::
:: 과 같은 경우입니다.
::
:: 답변 부탁드립니다.
|