테스트 사이트 - 개발 중인 베타 버전입니다

오라클 디비 사용시 서브쿼리시 주의할점!

오라클 디비를 사용할때 간간히 서브 쿼리를 사용한다
 
SELECT * FROM employees
WHERE job_id = (SELECT job_id FROM jobs WHERE job_title = 'Sales Manager');
식으로 되어 있을때
서브 쿼리 SELECT job_id FROM jobs WHERE job_title = 'Sales Manager' 값이 kkk 라고 하면
 
SELECT * FROM employees
WHERE job_id = 'kkk';
라고 생각하기 쉽다
 
그러나 이거는 db엔진 마음이다
 
보통은
SELECT * FROM employees
WHERE job_id = 'kkk';
처럼 작동한다
 
그러나 후자가 될때는
job_id를 검색할때마다 서브쿼리를 돌린다
거디다 실수로 서브쿼리에 index 처리 마저 안했다면 ㅡㅜ
전 그런 사이트를 본적이 있었습니다
하하하^^ 속도 느려지는게 예술입니다
쓰신다음 대략적인 속도 한번 확인해 보세요. 
 
 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 1개

그래서 강제로 hint 를 주지 않나요?
오라클 쿼리 해본지 백만년 된 1인..
where in 쿼리는 oracle에서 좋지 않은 방법이라고 배웠었던거 같습니다.
exist가 가능하면 그걸로 바꿔서 쓰는 형태가 좋다고..

게시판 목록

프로그램

글쓰기