Oracle 에서 사용하는 기법에 대해서 문의드립니다. 0 1 1,749

by 물통20병 [Oracle 기초] SQL 오라클 [2017.05.26 08:55:32]


오라클 DB를 만지고 있는데요 작업을 하다가 막히는 부분이 있어서 질문드립니다.

여러 테이블을 조인하는 경우에 IN 연산자의 사용이 쿼리의 속도를 낮춘다는 것을 알게 되었습니다

그래서 IN을 대체하고 싶은데 방법을 잘 모르겠습니다.

두 번째 일반적으로 GROUP BY를 하는 경우 기본키 하나로 묶는 경우가 일반적인데 GROUP BY로 묶은 이외의 열을 SELECT절에 사용하고 싶다면 어떻게 해야하나요

GROUP BY절에 그 열을 추가한다면 열이 나오는것은 알지만 비효율적인 것을 알게되어 질문합니다. 문자열의 경우 MAX나 MIN을 사용해 보았으나 이 역시 위험하네요.

 

by 마농 [2017.05.26 10:38:19]

느리다? 위험하다?
막연한 두려움에 의한 잘못된 판단입니다.
뭘 쓰던 해당 기능에 대해 이해하고 용도에 맞게 사용해야 하는 것입니다.
1. IN 이 느려서 대체한다?
  - IN 이 느린게 아니라 전체 쿼리가 느린 것입니다.
  - IN 부분을 수정하는게 아니라 전체 쿼리를 튜닝해야 합니다.
2. Group By 에서 항목 추가는
  - 해당 항목이 집계 기준인지 아닌지 우선 판단해야 합니다.
  - 집계 기준이라면 Group By 에 추가하면 되고.
  - 집계 기준이 아니라면? Select 절에 단순 추가 할 수 없습니다.

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