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;
영향이 있다면 고려하는 습관을 들이려고 합니다. 감사합니다.
2번은 에러입니다.
where 조건 뒤바꿔도 차이 없습니다.
3.번 굳이 조건을 더 넣을필요없습니다.
감사합니다. 에러코드는 수정했습니다.
IS NOT NULL 을 안주더라도
내부적으로 쿼리변환 과정이 수행되면서 해당 조건이 자동으로 추가됩니다.