별칭(Aliasing)

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

Dean Smith

Founder, Atamai Analytics

별칭이란?

  • 쿼리에서 다음을 식별하는 데 사용:
    • 테이블
    • 하위 쿼리
  • 일시적이며 실행 시에만 적용
  • 쿼리 가독성 향상
  • 필요할 수 있음
SQL Server에서 쿼리 성능 향상하기

별칭을 쓰는 이유

  • 긴 테이블/열 이름의 반복을 피함
  • 조인된 테이블과 해당 열을 쉽게 식별
  • 새 열 식별
  • 하위 쿼리 식별
  • 같은 이름의 열로 인한 모호성 방지
  • 열 이름 바꾸기
SQL Server에서 쿼리 성능 향상하기

조인된 테이블 - 모호한 열 이름

SELECT CountryName, 
       Code2, 
       Capital, 
       Pop2017
FROM Nations
INNER JOIN Cities
  ON Capital = CityName;
-----------------------------------------------
-- 오류: Pop2017 열은 
Nations와 Cities 모두에 존재

모호한 열 이름 'Pop2017'.
SQL Server에서 쿼리 성능 향상하기

조인된 테이블 - 테이블 이름에 별칭 지정

-- 테이블에 별칭 지정: Nations는 n, Cities는 c
SELECT n.CountryName, 
       n.Code2, 
       n.Capital, 
       c.Pop2017 -- 도시 인구
FROM Nations AS n
INNER JOIN Cities AS c
  ON n.Capital = c.CityName;
CountryName Code2 Capital Pop2017
United Kingdom GB London 346774
Canada CA Ottawa 874433
France FR Paris 10437
Reunion RE Saint-Denis 1067
... ... ... ...
SQL Server에서 쿼리 성능 향상하기

열 이름 바꾸기

-- 열에 별칭 지정
SELECT n.CountryName AS Country, 
       n.Code2 AS CountryCode, 
       n.Capital, 
       c.Pop2017 AS Population
FROM Nations AS n
INNER JOIN Cities AS c
  ON n.Capital = c.CityName;
Country CountryCode Capital Population
United Kingdom GB London 346774
Canada CA Ottawa 874433
France FR Paris 10437
Reunion RE Saint-Denis 1067
... ... ... ...
SQL Server에서 쿼리 성능 향상하기

새 열 만들기

-- 새 열을 MaxMagnitude로 별칭 지정
SELECT Country, 
       NearestPop AS City,
       MAX(Magnitude) AS MaxMagnitude
FROM Earthquakes 
GROUP BY Country, NearestPop;
Country City MaxMagnitude
PE Acar 7.1
US Aguadilla 7.7
MX Aguililla 7.2
PW Airai 7.8
PG Aitape 7.6
... ... ...
SQL Server에서 쿼리 성능 향상하기

하위 쿼리

SELECT n.CountryName AS Country, 
       n.Capital, 
       e.MaxMagnitude
FROM Nations n
INNER JOIN
        (SELECT Country, NearestPop AS City
                ,MAX(Magnitude) AS MaxMagnitude
        FROM Earthquakes 
        GROUP BY Country, NearestPop) e 
              -- 하위 쿼리에 e라는 별칭 지정
    ON n.Code2 = e.Country AND n.Capital = e.City;
Country Capital MaxMagnitude
Fiji Suva 7.9
Guam Hagatna 7.8
Peru Lima 7.6
Turkmenistan Ashgabat 7.3
... ... ...
SQL Server에서 쿼리 성능 향상하기

연습해 봅시다

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

Preparing Video For Download...