서브쿼리에 대한 기본 내용 이해하기

  1. 서브쿼리란?
  2. 서브쿼리의 사용 패턴에 대해 알아보자

서브쿼리란?

일반적인 서브쿼리란?
  • 쿼리에 비교 조건으로 사용되는 중첩된 SELECT 쿼리를 의미
  • 집합적인 사고를 필요로 하는 조인 보다는 절차적이므로 사용하기 쉽다.
  • 무분별하게 남용하여 사용할 경우 성능 문제가 발생할 확률이 높다.

서브쿼리의 사용 패턴에 대해 알아보자

쿼리 : 01. sql_example


-- 사용패턴 1
-- 서브쿼리 추출 결과는 반드시 1건 (서브쿼리 -> Main SQL)
SELECT *
  FROM emp
 WHERE sal > (SELECT avg(sal)
          FROM emp)

-- 사용패턴 2
-- 서브쿼리 추출 결과가 여러 건 (서브쿼리 <-> Main SQL)
-- 성능문제가 주로 발생하는 패턴
SELECT c1,
       c2,
       c3
  FROM SUBQUERY_T2 t2
 WHERE c2 = 'A'
   AND EXISTS (SELECT /*+ NO_UNNEST */'x'
          FROM SUBQUERY_T1 t1
         WHERE t1.c5 = t2.c2)