워크로드가 동적 테이블 성능에 미치는 영향¶
파이프라인의 워크로드를 최적화하면 비용이 절감되고 전반적인 성능이 향상됩니다. 동적 테이블 새로 고침의 성능을 개선하는 가장 효과적인 방법은 워크로드를 미세 조정하여 최적화를 시작하는 것이므로 Snowflake는 최적화를 시작할 것을 권장합니다.
쿼리¶
동적 테이블의 쿼리를 자세히 살펴보고 다음과 같이 워크로드를 줄일 수 있는 방법을 찾아보십시오.
스캔 중인 데이터의 양을 줄이기 위해 필터를 추가합니다.
파이프라인 초기에 중복을 제거하고 이후
DISTINCT
를 사용하지 않도록 합니다.
NULL
사용을 줄이고 원본 데이터의 참조 무결성을 보장하여 외부 조인을 내부 조인으로 대체할 수 있습니다.자주 읽지 않는 큰 열을 구체화하지 마십시오.
지역성¶
테이블에 있는 데이터의 레이아웃을 고려합니다. 우수한 성능을 위해서는 쿼리에서 액세스하는 데이터가 서로 가깝게 위치해야 하며, 이를 지역성 이라고 합니다.
예를 들어, 특정 열을 기준으로 행을 효율적으로 검색해야 하는 경우 해당 열을 기준으로 테이블을 클러스터링 해야 합니다. 이상적으로, 테이블의 지역성은 쿼리의 구조와 일치해야 하며, 가능하면 JOIN, GROUP BY, PARTITION BY 키별로 클러스터링하는 것이 좋습니다. 클러스터링의 이점을 얻으려면 클러스터링 키 시퀀스가 분할 키 시퀀스와 공통 접두사를 공유해야 합니다.
지역성을 최적화하는 것은 장단점이 있습니다. 여러 열에서 동시에 지역성을 최적화하는 것은 어렵기 때문에 최상의 성능을 위해 가장 큰 영향을 미치는 열에 집중하십시오. 자세한 내용은 Snowflake 테이블 구조 이해하기 섹션을 참조하십시오.