학습 순서가 틀렸네요.
실행계획은 이해하는게 아닙니다.
실행계획은 SQL 처리 절차를 이해하기 위한 참고 수단일 뿐.
쿼리 수행의 원리를 먼저 이해하셔야죠.
쿼리수행의 원리는 다음을 우선 공부하셔야 하고
1. 스캔방법 : 풀스캔, 인덱스스캔 등
2. 스캔방법에 따른 장단점
3. 조인방법 : NL, HASH, SORT_MERGE 등
4. 조인방법에 따른 장단점
단순 우위 비교가 아닌 장점과 단점을 모두 이해하고
상황에 따른 취사 선택 능력을 길러야 합니다.
실행계획의 숫자만 보고 판단하시면 안됩니다.
실행계획의 숫자는 100% 믿을 수는 없습니다.
예를 들면 위 쿼리를 제가 테스트 해보니.(10g)
'%'를 하나만 주었을때는 1번쿼리와 동일한 Byte와 Card 가 나오며
'%'를 두개이상 주었을때는 2번쿼리와 동일한 Byte와 Card 가 나오네요
'%'를 하나 주나 두개 주나 결과는 전체 건수로 동일하므로
어느것이 더 효율적이다 판단할 수 없습니다.
같은 결과라면 조건 체크를 안하는 1번이 당연 효율적이겠지요.