쿼리 성능 최적화¶
다음과 같은 방법으로 Snowflake 쿼리 성능을 최적화할 수 있습니다.
검색 최적화 서비스
쿼리 가속
1개 이상의 구체화된 뷰 만들기(클러스터형 또는 비클러스터형)
테이블 클러스터링
다음 테이블에 표시된 것처럼, 이러한 각 최적화 방법에는 서로 다른 이점이 있습니다.
특징 |
지원되는 쿼리 유형 |
참고 |
|---|---|---|
검색 최적화 서비스는 지원되는 데이터 타입 에 대해 이러한 유형의 검색 성능을 개선할 수 있습니다. |
||
필터 또는 집계가 있는 쿼리. LIMIT가 포함된 쿼리에는 ORDER BY도 포함되어야 합니다.
필터는 선택성이 뛰어나야 하며 ORDER BY 절은 카디널리티가 낮아야 합니다.
쿼리 가속은 임시 분석, 예측할 수 없는 데이터 볼륨이 있는 쿼리,
대규모 검사와 선택적 필터를 사용한 쿼리에서 잘 작동합니다.
|
쿼리 가속과 검색 최적화는 상호 보완적입니다. 둘 다 같은 쿼리를 가속화할 수 있습니다. 쿼리 가속과의 호환성 섹션을 참조하십시오. |
|
|
또한 구체화된 뷰를 사용하여 동일한 원본 테이블(또는 해당 테이블의 하위 세트)에서 서로 다른 클러스터링 키를 정의하거나 평면화된 JSON 또는 VARIANT 데이터를 저장하여 한 번만 평면화하면 되도록 할 수 있습니다. 구체화된 뷰는 그 내부에 포함된 행 및 열로 구성된 하위 세트에 대해서만 성능을 개선할 수 있습니다. |
|
|
테이블은 1개 이상의 열 또는 식이 포함될 수 있는 단일 키에만 클러스터링될 수 있습니다. |
다음 테이블은 이러한 최적화에서의 저장소 또는 컴퓨팅 요금의 발생 여부를 보여줍니다.
최적화 |
저장소 비용 |
컴퓨팅 비용 |
|---|---|---|
검색 최적화 서비스 |
✔ |
✔ |
Query Acceleration Service |
✔ |
|
구체화된 뷰 |
✔ |
✔ |
테이블 클러스터링 |
✔ [1] |
✔ |
쿼리 가속과의 호환성¶
검색 최적화와 쿼리 가속 은 함께 작동하여 쿼리 성능을 최적화할 수 있습니다. 먼저, 검색 최적화는 쿼리에 필요하지 않은 :ref:`마이크로 파티션<label-what_are_micropartitions>`을 정리할 수 있습니다. 그런 다음, :ref:`적합한 쿼리<label-identifying_queries_warehouses_for_qas>`의 경우 쿼리 가속화는 나머지 작업 중 일부를 서비스에서 제공하는 공유 컴퓨팅 리소스로 오프로드할 수 있습니다.
두 서비스로 모두 가속화되는 쿼리의 성능은 워크로드와 사용 가능한 리소스에 따라 다릅니다.