쿼리 가속 시도하기¶
이 항목에서는 웨어하우스 소유자 또는 관리자가 Query Acceleration Service를 사용하여 웨어하우스에서 실행되는 쿼리의 성능을 개선하는 방법에 대한 개요를 제공합니다. 쿼리 가속에 대한 자세한 내용은 Query Acceleration Service 사용하기 섹션을 참조하십시오.
Query Acceleration Service는 쿼리 처리의 일부를 서버리스 컴퓨팅 리소스 로 오프로드하여 웨어하우스의 컴퓨팅 리소스에 대한 수요를 줄이면서 쿼리 처리 속도를 높입니다.
웨어하우스에 이상값 쿼리(즉, 일반적인 쿼리보다 더 많은 리소스를 사용하는 쿼리)가 있는 경우, 이상값 쿼리의 추가 컴퓨팅 수요가 서버리스 컴퓨팅 리소스로 오프로드되므로 Query Acceleration Service로 웨어하우스의 다른 쿼리 성능도 향상할 수 있습니다.
Query Acceleration Service의 이점을 얻을 수 있는 워크로드의 예로는 임시 분석, 쿼리당 예측할 수 없는 데이터 볼륨이 있는 워크로드, 대규모 스캔과 선택적 필터가 있는 쿼리 등이 있습니다.
참고
이 항목에서 제공되는 진단 쿼리를 실행하려면 공유 SNOWFLAKE 데이터베이스에 대한 액세스 권한 이 있어야 합니다. 기본적으로 ACCOUNTADMIN 역할만 쿼리 실행에 필요한 권한을 갖습니다.
쿼리 가속 후보 찾기¶
함수 또는 쿼리를 사용하여 Query Acceleration Service 활성화로 쿼리 또는 쿼리 세트의 성능을 향상할 수 있을지 여부를 확인할 수 있습니다.
함수: 특정 쿼리가 이익이 될 수 있을지 확인하기
SYSTEM$ESTIMATE_QUERY_ACCELERATION 함수를 사용하면 특정 쿼리가 Query Acceleration Service에 적합한 후보인지 확인할 수 있습니다.
이 함수는 쿼리 ID를 유일한 인자로 허용합니다. 함수를 PARSE_JSON 함수로 래핑하면 결과를 더 쉽게 해석할 수 있습니다. 예:
select parse_json(system$estimate_query_acceleration('8cd54bf0-1651-5b1c-ac9c-6a9582ebd20f'));
쿼리가 Query Acceleration Service의 후보이고 아직 가속화되지 않은 경우 응답의 status
는 eligible
입니다. ineligible
상태는 웨어하우스에 대해 Query Acceleration Service를 활성화할 경우 쿼리에 도움이 되지 않음을 나타냅니다.
다양한 배율 인자에 대한 예상 실행 시간을 포함하여, 특정 쿼리에 대한 Query Acceleration Service 평가에 관한 추가 정보는 참조 설명서 를 참조하십시오.
쿼리: 웨어하우스 전체에서 최상의 쿼리 후보
이 쿼리는 가속에 적합한 쿼리 실행 시간을 계산하여 Query Acceleration Service에서 가장 큰 이점을 얻을 수 있는 쿼리를 식별합니다.
SELECT query_id, eligible_query_acceleration_time
FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_ELIGIBLE
ORDER BY eligible_query_acceleration_time DESC;
쿼리: 실행 시간 기준 최상의 웨어하우스 후보
이 쿼리는 Query Acceleration Service에서 가장 큰 이점을 얻을 수 있는 웨어하우스를 식별합니다. 각 웨어하우스에 대해, 가속에 적합한 총 쿼리 실행 시간을 계산합니다.
SELECT warehouse_name, SUM(eligible_query_acceleration_time) AS total_eligible_time
FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_ELIGIBLE
GROUP BY warehouse_name
ORDER BY total_eligible_time DESC;
쿼리: 쿼리 수 기준 최상의 웨어하우스 후보
이 쿼리는 Query Acceleration Service에 적합한 쿼리가 가장 많은 특정 기간에 있는 웨어하우스를 식별합니다.
SELECT warehouse_name, COUNT(query_id) AS num_eligible_queries
FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_ACCELERATION_ELIGIBLE
WHERE start_time > 'Mon, 29 May 2023 00:00:00'::timestamp
AND end_time < 'Tue, 30 May 2023 00:00:00'::timestamp
GROUP BY warehouse_name
ORDER BY num_eligible_queries DESC;
비용 고려 사항¶
쿼리 가속을 위해 웨어하우스에서 임대한 서버리스 컴퓨팅 리소스는 웨어하우스에서 사용한 크레딧과 별개로 크레딧을 사용하며 별도로 청구됩니다.
Query Acceleration Service는 전체 웨어하우스에 대해 활성화되지만, 웨어하우스 업사이징과 달리 컴퓨팅 성능 향상의 이점을 누리는 쿼리에만 사용됩니다. 추가 컴퓨팅 리소스가 필요하지 않은 쿼리는 더 큰 웨어하우스를 사용하는 추가 비용이 발생시키지 않으므로 혼합 워크로드를 실행하는 웨어하우스에 비용 효율적일 수 있습니다.
웨어하우스의 배율 인자 를 사용하여 Query Acceleration Service 비용을 통제할 수 있습니다. 웨어하우스 크레딧 사용의 승수인 이 배율 인자는 웨어하우스에서 사용할 수 있는 서버리스 컴퓨팅의 양에 대한 제한을 설정합니다. 예를 들어 웨어하우스의 배율 인자가 5인 경우 서버리스 컴퓨팅 리소스의 크레딧 사용률은 웨어하우스의 사용률을 5배 이상 초과할 수 없습니다.
SYSTEM$ESTIMATE_QUERY_ACCELERATION 함수를 사용하여 배율 인자가 쿼리 성능에 미치는 영향을 측정할 수 있습니다.
비용을 고려하지 않고 성능을 최대화하려면 배율 인자를 0으로 설정하십시오.
Query Acceleration Service를 활성화하는 방법¶
성능 향상 극대화로 Query Acceleration Service를 활성화하려면 다음과 같이 ALTER WAREHOUSE 명령을 사용하십시오.
ALTER WAREHOUSE my_wh SET
ENABLE_QUERY_ACCELERATION = true
QUERY_ACCELERATION_MAX_SCALE_FACTOR = 0;