오라클 디비 사용시 서브쿼리시 주의할점! 정보
기타 오라클 디비 사용시 서브쿼리시 주의할점!- onlymilk74 자기소개 아이디로 검색 회원게시물
- 2,682
본문
오라클 디비를 사용할때 간간히 서브 쿼리를 사용한다
SELECT * FROM employees
WHERE job_id = (SELECT job_id FROM jobs WHERE job_title = 'Sales Manager');
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';
WHERE job_id = 'kkk';
라고 생각하기 쉽다
그러나 이거는 db엔진 마음이다
보통은
SELECT * FROM employees
WHERE job_id = 'kkk';
WHERE job_id = 'kkk';
처럼 작동한다
그러나 후자가 될때는
job_id를 검색할때마다 서브쿼리를 돌린다
거디다 실수로 서브쿼리에 index 처리 마저 안했다면 ㅡㅜ
전 그런 사이트를 본적이 있었습니다
하하하^^ 속도 느려지는게 예술입니다
쓰신다음 대략적인 속도 한번 확인해 보세요.
추천
1
1
댓글 1개

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