다음 문제를 풀어보세요.
다음 보기 중 PIVOT 쿼리를 작성할 때 성능 및 불필요한 행 그룹화를 방지하기 위해 권장하는 방식으로 가장 적절한 것을 고르시오.
테이블 전체를 직접 PIVOT 절의 대상 테이블로 지정하는 것이 내부 성능 옵티마이저가 뷰 병합(View Merging)을 수행하기에 가장 유리하다.
PIVOT 절은 불필요한 컬럼이 테이블에 존재할 경우 해당 컬럼들까지 자동으로 Group By 기준에 참여시키므로, 인라인 뷰(Inline View)를 통해 피벗 및 집계에 필요한 컬럼만 추출하여 PIVOT을 수행해야 한다.
PIVOT 처리를 할 때는 인덱스 스캔이 불가능하고 항상 Full Table Scan이 일어나므로 테이블 크기가 클 경우에는 반드시 UNPIVOT을 먼저 수행한 뒤 가공해야 한다.
PIVOT 절 내부의 집계 함수(Aggregate Function)는 성능 최적화를 위해 오직 한 개만 사용할 수 있으므로 여러 개의 컬럼을 피벗하려면 쿼리를 여러 번 나누어 UNION ALL 해야 한다.