JOIN 조건 순서가 영향이 있나요? NOT NULL이 성능 개선에 도움이 되나요? 3

by 꿀벌 [2023.04.24 10:37:31]


안녕하세요! 오라클 입문자입니다.

1.

SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.SALARY, E.JOB_ID
FROM EMPLOYEES E, SALARY_GRADES G
WHERE G.GRADE = 'F'
AND E.SALARY BETWEEN G.MIN_SALARY AND G.MAX_SALARY;

2(수정함).

SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.SALARY, E.JOB_ID
FROM EMPLOYEES E, SALARY_GRADES G
WHERE E.SALARY BETWEEN G.MIN_SALARY AND G.MAX_SALARY
AND G.GRADE = 'F';

1이 2보다 빠른가요? 아니면 성능 차이가 '전혀' 없나요?

 

3. SELECT D.DEPARTMENT_ID,
    D.DEPARTMENT_NAME,
    E.FIRST_NAME,
    E.JOB_ID
FROM DEPARTMENTS D, EMPLOYEES E
WHERE D.MANAGER_ID IS NOT NULL -- NOT NULL 조건이 없어도 조인되며 자동으로 NULL이 제거됩니다. 조건을 굳이 명시하는 것이 성능 개선에 도움이 되나요?
AND D.MANAGER_ID = E.EMPLOYEE_ID;

 

영향이 있다면 고려하는 습관을 들이려고 합니다. 감사합니다.

 

by 우리집아찌 [2023.04.24 11:17:00]

2번은 에러입니다.

where 조건 뒤바꿔도 차이 없습니다.

3.번 굳이 조건을 더 넣을필요없습니다.


by 꿀벌 [2023.04.24 11:24:49]

감사합니다. 에러코드는 수정했습니다.


by 마농 [2023.04.24 13:10:33]

IS NOT NULL 을 안주더라도
내부적으로 쿼리변환 과정이 수행되면서 해당 조건이 자동으로 추가됩니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입