쿼리 인사이트를 사용하여 성능 개선하기¶
쿼리 성능에 영향을 미치는 조건이 있는 경우 Snowflake는 이러한 조건에 대한 인사이트를 제공합니다. 각 인사이트에는 쿼리 성능에 미치는 영향을 설명하고 성능 개선을 위한 일반적인 권장 사항을 제공하는 메시지가 포함됩니다.
:doc:`QUERY_INSIGHTS 뷰</sql-reference/account-usage/query_insights>`를 쿼리하여 이러한 인사이트에 액세스할 수 있습니다.
다음 섹션에서는 쿼리 인사이트에 대한 세부 정보를 제공합니다.
인사이트 유형 목록¶
:doc:`QUERY_INSIGHTS 뷰</sql-reference/account-usage/query_insights>`에서는 다음을 포함한 인사이트를 제공합니다.
감지된 조건과 이 조건이 쿼리 성능에 미치는 영향에 대한 메시지.
조건을 생성한 쿼리 부분에 대한 세부 정보.
조건이 성능에 부정적인 영향을 미치는 경우 조건을 해결하기 위해 제안된 다음 단계.
다음 테이블에는 유형 ID별 인사이트 유형이 나열되어 있습니다.
유형 ID |
인사이트 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
테이블 스캔에 필터 없음¶
쿼리 또는 하위 쿼리에는 WHERE 절이 없으므로 쿼리가 전체 테이블을 스캔하고 의도한 행보다 더 많은 행을 반환할 수 있습니다.
성능을 개선하려면 WHERE 절을 추가하여 스캔된 데이터의 양을 줄입니다.
필터를 적용할 수 없음¶
WHERE 절은 행을 필터링하지 않으므로, 쿼리가 의도한 데이터보다 더 많은 데이터를 스캔할 수 있습니다.
성능을 개선하려면 WHERE 절에 더 선택적인 조건을 추가하거나 기존 조건을 더 선택적으로 만듭니다.
필터가 선택적이지 않음¶
WHERE 절은 행 수를 크게 줄이지 않으므로 쿼리가 의도한 데이터보다 더 많은 데이터를 스캔할 수 있습니다.
필터를 적용할 수 없음 인사이트와 달리, 이 인사이트는 WHERE 절이 일부 행을 필터링하고 있지만 더 선택적일 수 있었음을 나타냅니다.
성능을 개선하려면 WHERE 절에 더 선택적인 조건을 추가하거나 기존 조건을 더 선택적으로 만듭니다.
필터가 클러스터링 키를 사용함¶
쿼리가 :doc:`테이블의 클러스터링 키</user-guide/tables-clustering-keys>`에 대한 필터링을 통해 이점을 얻었습니다.
쿼리가 검색 최적화의 이점을 얻음¶
쿼리가 :doc:`검색 최적화</user-guide/search-optimization-service>`를 위해 구성된 열에 대한 필터링을 통해 이점을 얻었습니다.
조인 조건이 없는 조인¶
조인에 조인 조건이 누락되었습니다. 결과는 가능한 모든 행 조합을 반환하는 :ref:`크로스 조인<label-querying_join_cross>`입니다.
이 조인에 의해 생성되는 행 수를 줄이려면 하나 이상의 조인 조건을 지정합니다.
급증하는 조인(중첩 조인)¶
하나 이상의 다른 조인의 출력을 포함하는 조인이 조인되는 테이블에 있는 행보다 더 많은 행을 반환합니다. 이는 하위 조인의 조인 조건에 문제가 있음을 나타낼 수 있습니다.
조인이 조인된 테이블에 포함된 행보다 더 많은 행을 생성하지 않도록 하려면 하위 조인에 대한 조인 조건을 추가하거나 변경합니다. 또한 하위 조인에 사용된 하위 쿼리에 WHERE 절을 추가하면 반환되는 행 수가 줄어들 수 있습니다.
급증하는 조인(중첩되지 않음)¶
두 데이터 세트(예: 테이블, 뷰 또는 테이블 함수 호출의 출력)의 조인은 조인된 테이블에 포함된 행보다 더 많은 행을 반환합니다. 이는 조인 조건에 문제가 있음을 나타낼 수 있습니다.
조인이 조인된 테이블에 있는 행보다 더 많은 행을 생성하지 않도록 하려면 조인 조건을 추가하거나 변경합니다. 또한 이 조인에서 사용하는 하위 조인에 WHERE 절을 추가하면 반환되는 행 수가 줄어들 수 있습니다.
원격 유출¶
이 쿼리는 웨어하우스가 저장할 수 있는 용량보다 더 많은 데이터를 스캔했습니다. 결과적으로 웨어하우스에서 저장소로 :ref:`데이터가 유출<label-spillage>`되어 쿼리 처리 속도가 느려졌습니다.
이 문제를 방지하려면 용량이 더 큰 대용량 웨어하우스를 사용합니다. 대용량 웨어하우스를 사용할 수 없는 경우 쿼리를 변경하여 데이터를 더 작은 배치로 처리합니다.
제한 사항¶
데이터베이스에 대해 수행되고 웨어하우스에서 처리되는 SQL 쿼리에 대한 인사이트가 생성됩니다.
인사이트는 다음에 대해 생성되지 않습니다.
보안 오브젝트와 관련된 쿼리.
하이브리드 테이블에 대해 실행된 쿼리(Unistore).
Native Apps에서 생성된 쿼리.
EXPLAIN 쿼리.
:doc:`결과를 재사용</user-guide/querying-persisted-results>`하는 쿼리.