기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
자동 쿼리 다시 작성
Amazon Redshift는 성능 향상에 사용되는 기존의 구체화된 뷰를 명시적으로 참조하지 않는 SQL 쿼리를 자동으로 다시 작성할 수 있습니다. 구체화된 뷰를 직접 쿼리하면 쿼리 처리 시간이 단축되지만 쿼리 문을 수정해야 합니다. 구체화된 뷰를 사용하여 쿼리 속도를 높이는 경우 자동으로 구체화된 뷰를 체계적으로 사용하여 쿼리에 응답하는 방법을 고려하는 것이 중요합니다. 투명한 다시 작성을 사용하면 기존 SQL 문에 영향을 주지 않고 인덱스와 동일한 방식으로 구체화된 뷰를 추가하거나 삭제할 수 있습니다. Amazon Redshift는 쿼리를 자동으로 다시 작성할 때 최신의 구체화된 뷰만 사용합니다.
쿼리 다시 작성 작동 방식
다음 SQL 쿼리를 고려해보세요. 쿼리는 customer(행 1,000만 개 이상)과 order(행 100억 개 이상)라는 두 테이블을 조인합니다.
SELECT c.cust_id, c.first_name, sum(o.amount) as total_amount FROM orders o JOIN customer c ON c.cust_id = o.customer_id GROUP BY c.cust_id, c.first_name HAVING sum(o.amount) > 500;
이 쿼리는 2개의 대형 테이블을 조인하고 o.amount 열에 합계 집계를 적용한 다음 500 USD 이상 주문한 고객만 표시하도록 결과를 필터링합니다. 이 쿼리는 리소스를 많이 소비할 수 있습니다.
예를 들어, 이 가이드의 구체화된 뷰 생성 섹션에 있는 mv_total_orders 구체화된 뷰를 살펴보세요. 이 뷰가 생성되면 Amazon Redshift는 자동으로 위의 쿼리를 다음과 같이 다시 작성합니다.
SELECT cust_id, first_name, total_amount FROM mv_total_orders WHERE total_amount > 500;
이 새 쿼리는 2개의 대형 테이블을 조인하는 대신 구체화된 뷰를 사용하기 때문에 훨씬 더 빠르게 실행됩니다.
쿼리를 다시 작성하여 다음과 같은 이유로 구체화된 뷰가 더 광범위하게 채택됩니다.
구체화된 뷰는 투명한 쿼리 다시 작성을 지원합니다. 쿼리를 다시 작성하면 테이블 측면에서 표현된 SQL 문이 하나 이상의 구체화된 뷰에 액세스하는 문으로 변환됩니다. 이 변환은 최종 사용자에게 투명하므로 개입이 필요 없고 SQL 문에 구체화된 뷰에 대한 참조도 필요 없습니다.
구체화된 뷰는 캐시된 공통 결과 세트의 적용을 간소화하고 사전 컴퓨팅과 같은 쿼리 간 최적화를 지원합니다.
데이터 웨어하우스 및 데이터 통합 시나리오에서 구체화된 뷰는 여러 데이터 소스 간의 차이를 숨기기 위해 외부 테이블 결과를 구체화하여 로컬 복제본 또는 읽기/쓰기 분할을 구현할 수 있습니다.
자동 구체화된 뷰 생성과 결합된 쿼리 다시 작성 기능은 데이터베이스 자율성을 가속화합니다.