대안적 방법 2

SQL Server에서 쿼리 성능 향상하기

Dean Smith

Founder, Atamai Analytics

INNER JOIN

SELECT c.CustomerID
      ,c.CompanyName
      ,o.OrderID
      ,o.OrderDate
      ,o.ShippedDate
      ,o.Freight
FROM Customers c
INNER JOIN Orders o
    ON c.CustomerID = o.CustomerID
CustomerID CompanyName OrderID ...
VINET Vins et alcools Chevalier 10248 ...
HANAR Hanari Carnes 10250 ...
VICTE Victuailles en stock 10251 ...
SUPRD Suprêmes délices 10252 ...
... ... ... ...
SQL Server에서 쿼리 성능 향상하기

LEFT OUTER JOIN

포함형 LEFT OUTER JOIN

베른 다이어그램 포함형 Left Outer Join

배타형 LEFT OUTER JOIN

베른 다이어그램 배타형 Left Outer Join

SQL Server에서 쿼리 성능 향상하기

배타적 LEFT OUTER JOIN

SELECT c.CustomerID
      ,c.CompanyName
      ,o.OrderID
      ,o.OrderDate
      ,o.ShippedDate
      ,o.Freight
FROM Customers c
LEFT OUTER JOIN Orders o
    ON c.CustomerID = o.CustomerID
WHERE o.CustomerID IS NULL
CustomerID CompanyName OrderID ...
FISSA FISSA Fabrica Inter. Salchichas S.A. NULL ...
PARIS Paris spécialités NULL ...
SQL Server에서 쿼리 성능 향상하기

복습: INTERSECT와 EXCEPT

INTERSECT: 존재 여부 확인

EXCEPT: 부재 여부 확인

장점

  • 데이터 탐색에 유용함
  • 반환 결과의 중복 제거

단점

  • 두 쿼리의 SELECT 열 수와 순서가 동일해야 함
SQL Server에서 쿼리 성능 향상하기

복습: EXISTS와 NOT EXISTS

EXISTS: 존재 여부 확인

NOT EXISTS: 부재 여부 확인

장점

  • 서브쿼리가 TRUE가 되는 즉시 탐색 중단
  • 결과에 외부 쿼리의 임의 열을 임의 순서로 포함 가능

단점

  • 결과에는 외부 쿼리의 열만 포함 가능
SQL Server에서 쿼리 성능 향상하기

복습: IN과 NOT IN

IN: 존재 여부 확인

NOT IN: 부재 여부 확인

장점

  • 결과에 외부 쿼리의 임의 열을 임의 순서로 포함 가능

단점

  • 결과에는 외부 쿼리의 열만 포함 가능
  • 서브쿼리의 null 처리 방식으로 NOT IN에서 결과 미반환 가능
SQL Server에서 쿼리 성능 향상하기

복습: INNER JOIN과 배타적 L.O.J

INNER JOIN: 존재 여부 확인

배타적 LEFT OUTER JOIN: 부재 여부 확인

장점

  • 결과에 조인된 모든 쿼리의 임의 열을 임의 순서로 포함 가능

단점

  • 배타적 LEFT OUTER JOIN에는 IS NULL WHERE 조건이 필요
SQL Server에서 쿼리 성능 향상하기

연습해 봅시다!

SQL Server에서 쿼리 성능 향상하기

Preparing Video For Download...