-
3. 친절한 SQL 튜닝IT 서적/친절한 SQL 튜닝 2023. 10. 20. 23:08
자동 형변환 주의
- 숫자형 컬럼과 문자형 컬럼을 비교하면 문자가 숫자로 변환되는데 문자에서 숫자로 변경할 수 없는 값을 비교하면 에러가 발생
WHERE 1=1 AND EMPLOYEE_NO(숫자 타입) = '123' ==> 자동 형변환 WHERE 1=1 AND EMPLOYEE_NO(숫자 타입) = 'A123' ==> 에러 발생
- 비교 대사시 형 변환 우선순위 : 날짜 > 숫자 > 문자
- DECODE 함수는 3번째 인자로 데이터 타입이 결정된다.
SQL 성능 원리를 잘 모르는 개발자는 TO_CHAR, TO_DATE, TO_NUMBER 같은 형변환 함수를 의도적으로 생략한다.
- 이들 함수를 생략하면 연산횟수가 줄어 성능이 더 좋은 쪽으로 생각하기 때문이다.
- SQL 성능은 그런 데서 결정되는 것이 아니라, 블록 I/O를 줄일 수 있느냐 없느냐에서 결정된다.
결론! 비교하는 두 데이터의 타입을 함수를 써서라도 맞춰주자!
'IT 서적 > 친절한 SQL 튜닝' 카테고리의 다른 글
6. 친절한 SQL 튜닝 (0) 2023.10.20 5. 친절한 SQL 튜닝 (0) 2023.10.20 4. 친절한 SQL 튜닝 (0) 2023.10.20 2. 친절한 SQL튜닝 (0) 2023.10.20 1. 친절한 SQL 튜닝 (0) 2023.10.20