CoCo로 워크로드 성능 분석하기

CoCo로 워크로드 성능 분석하기

Cortex Code의 workload-performance-analysis 번들 스킬은 ACCOUNT_USAGE 뷰를 사용해 Snowflake SQL 쿼리 실행을 분석해요. 자연어로 질문하면 스킬이 과거 성능 데이터를 쿼리하고, 발견한 내용을 요약하며, 다음 단계를 제안할 수 있어요.

출처: Snowflake 문서

본문

이 스킬은 Cortex Code에 내장되어 있어요. 별도로 설치하거나 구성할 필요가 없어요.

개요

쿼리가 어떻게 실행됐는지와 다음에 무엇을 튜닝할지를 이해해야 할 때 이 스킬을 사용해요: 스필링(spilling), 파티션 프루닝(pruning), 캐시 효율, 클러스터링, 그리고 Search Optimization Service(SOS) 또는 Query Acceleration Service(QAS) 자격 여부 등.

이 스킬은 성능 분석의 단일 진입점이에요. 무엇을 묻느냐에 따라 특정 쿼리, 웨어하우스, 테이블, 쿼리 패턴, 저장 프로시저 실행, 쿼리 집합, 또는 광범위한 계정 상태 스캔에 집중해요.

스킬이 적용되는 경우

Cortex Code는 요청이 다음과 같은 성능 분석 주제와 일치할 때 workload-performance-analysis를 선택해요.

  • 스필링, 메모리 압박, 또는 로컬·원격 스토리지로의 스필
  • 파티션 프루닝, 스캔 볼륨, 또는 프루닝이 잘 안 되는 테이블
  • 캐시 히트율 또는 웨어하우스 캐시 효율
  • 클러스터링 키, CLUSTER BY, 또는 클러스터링·SOS용 프레디킷 열
  • 검색 최적화 또는 SOS 후보
  • Query Acceleration Service(QAS) 또는 가속 자격
  • 느린 SQL 진단, 병목, 근본 원인, 또는 동시성 문제
  • 웨어하우스별 스필·프루닝·캐시 지표

이 스킬이 다루지 않는 것

다음 주제에는 다른 Cortex Code 스킬을 사용해요.

주제 대신 사용할 스킬
비용, 크레딧, 또는 지출 분석 cost-intelligence
접근 감사 또는 데이터 거버넌스 data-governance
SQL 작성·편집·디버깅 이 스킬 밖의 일반 Cortex Code 지원

스킬이 할 수 있는 것

이 스킬은 ACCOUNT_USAGE 뷰를 사용해 SQL 쿼리 성능을 분석해요. 다음을 도와줄 수 있어요.

  • 디스크 스필링(Disk spilling): 과도한 로컬 또는 원격 스필링이 있는 쿼리를 찾고 수정 방법을 제안해요.
  • 파티션 프루닝(Partition pruning): 큰 테이블의 프루닝 비율과 스캔 효율을 검토해요.
  • 캐시 히트율(Cache hit rates): 로컬 디스크 캐시와 웨어하우스 캐시 효율을 평가해요.
  • 클러스터링 키(Clustering keys): 프루닝이 좋지 않을 때 클러스터링 키를 추천해요.
  • Search Optimization Service(SOS): SOS의 혜택을 받을 수 있는 워크로드를 식별해요.
  • Query Acceleration Service(QAS): QAS 자격이 될 수 있는 쿼리를 찾아요.
  • 프레디킷 분석(Predicate analysis): 필터 열을 클러스터링 또는 SOS 기회와 연결해요.
  • 저장 프로시저 실행: 상위 CALL과 그 하위 쿼리를 하나의 실행으로 분석해요.
  • 쿼리 집합과 패턴: 여러 쿼리, 반복 패턴, 필터링된 워크로드를 비교해요.

결과는 모든 행의 원시 덤프가 아니라 주요 발견 사항을 먼저 요약해요.

스킬이 답할 수 있는 질문

  • 어떤 쿼리가 디스크로 스필링되고 있으며, 웨어하우스를 키우거나 쿼리를 변경해야 하나요?
  • ANALYTICS_WH 웨어하우스가 최근 실행에서 스필, 프루닝, 또는 캐시 문제를 보이나요?
  • DB.SCHEMA.ORDERS의 스캔이 파티션을 충분히 프루닝하고 있나요?
  • 어떤 반복 쿼리 패턴이 가장 느리거나 실행 비용이 가장 높나요?
  • 하위 쿼리를 포함해 이 저장 프로시저 실행 내부에서 무엇이 발생했나요?
  • 최근 워크로드에 SOS 또는 QAS 후보가 있나요?
  • 계정 차원의 빠른 성능 상태 점검(스필링, 프루닝, 캐시, QAS)을 알려주세요.

가능하면 구체적으로 말해요. 쿼리 ID, 웨어하우스 이름, 정규화된 테이블 이름, 시간 범위, 또는 증상(예: "지난 7일간 ANALYTICS_WH의 원격 스필링")이 분석 범위를 정하는 데 도움이 돼요.

분석이 얼마나 깊어지는가

요청을 어떻게 표현하는지로 깊이를 조절해요. 다음 표는 일반적인 결과를 요약해요.

요청 내용 받는 결과
요약, 개요, 빠른 확인, 상태 점검 높은 수준의 발견 사항. 이후 더 깊이 요청할 수 있어요.
무엇이 문제인가, 근본 원인, 병목, X가 느린 이유 요약 + 문제 탐지
추천, 수정 방법, 최적화, 실행 항목 요약, 탐지, 구체적 권고사항

깊이를 지정하지 않으면 스킬은 요약으로 시작하고 더 깊은 분석이나 권고사항을 제안해요.

스킬을 사용할 수 있는 곳

스킬은 네 곳에서 사용할 수 있어요. Snowsight에서 Analyze with CoCo를 선택해 페이지 컨텍스트를 스킬에 전달해요. Cortex Code CLI, Cortex Code Desktop, 또는 Snowsight의 Cortex Code 패널에서 분석할 내용을 설명하거나 /workload-performance-analysis를 호출해요.

쿼리 세부정보(Query Details)

Snowsight의 단일 쿼리 세부정보 뷰에서 Analyze with CoCo를 선택해요. Cortex Code는 그 쿼리의 컨텍스트를 받아 그 실행(쿼리가 CALL일 때 저장 프로시저 실행 포함)을 분석해요. 자세한 내용은 특정 쿼리의 세부정보와 프로파일 검토를 참고해요.

쿼리 이력(Query History)

Query History에서 보기에 쿼리가 하나 이상 있을 때 Analyze with CoCo를 선택해요. 스킬은 페이지의 목록 컨텍스트를 사용해 그 쿼리들을 요약하거나 비교해요. 자세한 내용은 Snowsight의 쿼리 이력을 참고해요.

Performance Explorer

Performance Explorer 대시보드에서 Analyze with CoCo를 선택해 이미 적용한 차트와 필터 맥락에서 워크로드 추세, 핫스팟, 시간 경과에 따른 변화를 해석해요. 자세한 내용은 Performance Explorer로 쿼리 워크로드 분석을 참고해요.

Cortex Code(CLI, Desktop, Snowsight 패널)

Cortex Code를 직접 열어 분석할 내용을 설명하거나 /workload-performance-analysis를 입력해 스킬을 호출해요. 이 경로는 페이지별 Analyze 작업을 사용하지 않고 Snowsight에서 Cortex Code 패널을 열 때도 적용돼요. 자세한 내용은 Cortex Code CLI 번들 스킬을 참고해요.

Snowsight 진입점은 페이지 컨텍스트를 전달하므로 쿼리 ID를 복사하거나 필터를 다시 입력할 필요가 없어요. CLI, Desktop, 또는 일반 Snowsight 패널에서는 프롬프트에 범위(웨어하우스 이름, 쿼리 ID, 테이블 이름, 시간 범위 등)를 포함해요.

예시 사용법

이 결과들은 스킬이 설계된 일반적인 워크로드와 일치해요.

  • 과도한 디스크 스필링이 있는 쿼리를 식별하고 구체적인 수정 권고안을 얻어요.
  • 파티션 프루닝 비율을 분석하고 큰 테이블에 더 나은 클러스터링 키를 제안해요.
  • Search Optimization Service 또는 Query Acceleration Service 자격이 되는 쿼리를 찾아요.

예시 프롬프트:

Summarize spill and cache metrics for warehouse ANALYTICS_WH over the last 7 days.

Why is query 01b24bb0-0007-9627-0000-0001234abcde slow? Root cause and recommendations.

Which tables have the worst partition pruning? Recommend clustering keys for the top offenders.

Are any of my recurring query patterns good QAS candidates?

Health check: spilling, pruning, cache, and QAS eligibility account-wide for the last week.

Cortex Code CLI에서는 /workload-performance-analysis를 실행한 다음 질문을 설명할 수도 있어요.

전제 조건과 접근

다음이 필요해요.

  • 계정에서 Cortex Code에 접근. Snowsight의 Cortex Code와 Cortex Code CLI를 참고해요.
  • 스킬이 쿼리하는 ACCOUNT_USAGE 뷰를 읽을 권한. 많은 분석에는 SNOWFLAKE.USAGE_VIEWER 데이터베이스 역할(또는 특정 뷰용 관련 사용량·거버넌스 역할)이 필요해요. 관리자가 접근을 부여할 수 있어요. 예를 들어:
GRANT DATABASE ROLE SNOWFLAKE.USAGE_VIEWER TO ROLE <your_role>;

볼 수 있는 내용은 역할이 Snowsight와 ACCOUNT_USAGE에서 접근할 수 있는 쿼리 및 계정 활동과 일치해요.

제한사항

다음 제약을 유의해요.

  • 과거 데이터만: 스킬은 ACCOUNT_USAGE에서 과거 실행을 분석해요. 미래 성능을 예측하지 않아요.
  • 지연 시간: ACCOUNT_USAGE 데이터는 실시간보다 뒤처질 수 있어요(예: 쿼리 이력 약 45분, 일부 프루닝 뷰는 더 길어요).
  • 하이브리드 테이블: 간헐적 테이블에 대한 이러한 뷰의 가시성이 제한될 수 있어요.
  • 혜택 추정: 스킬은 SOS 또는 클러스터링 후보를 표시할 수 있지만 활성화 시 정확한 절감액을 보장할 수는 없어요.

웨어하우스 크기나 큐잉 트레이드오프를 추천할 때 스킬은 워크로드가 속도(대기 시간·런타임 최소화)와 비용(크레딧 절약을 위해 큐잉·스필링 수용) 중 무엇을 우선시하는지 물을 수 있어요. 이 프레이밍은 지침을 맞춤화하는 데 도움이 돼요. 크레딧·지출 분석에는 cost-intelligence 스킬을 사용해요.

관련 성능 리소스

더 알아보기 (Learn more)