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

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

오라클 디비를 사용할때 간간히 서브 쿼리를 사용한다
 
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가 가능하면 그걸로 바꿔서 쓰는 형태가 좋다고..

게시글 목록

번호 제목
32341
32339
32326
32325
32322
32319
32318
32316
32315
32313
32312
32311
32310
32304
32303
32300
32293
32292
32291
32285
32284
32275
32271
32268
32265
32261
32258
32257
32255
32254
32253
32251
32250
32249
32247
32246
32245
32244
32243
32242
32241
32240
32239
32238
32237
32236
32232
32229
32228
32227
32217
32215
32214
32213
32211
32207
32196
32193
32192
32190
32188
32186
32184
32173
32172
32171
32167
32165
32163
32162
32158
32157
32155
32151
32149
32135
32132
32127
32125
32122
32120
32119
32117
32116
32115
32114
32112
32111
32109
32107
32104
32103
32102
32101
32094
32089
20404
31036
8279
8268