[Snowflake] Search Optimization Service

차지예·2026년 6월 9일

Snowflake

목록 보기
37/49
post-thumbnail

🎯 한 줄 요약

"건초더미에서 바늘 찾기"를 빠르게 해주는 기능
→ 거대한 테이블에서 딱 몇 개 행만 콕 집어 찾는 쿼리를 빠르게!

책이 10,000권 있는 도서관에서 특정 책 1권을 찾는다고 해보세요.

방식결과
📚 그냥 찾기책장 다 뒤져야 함 (느림)
🔖 색인(index) 사용색인 보고 바로 그 칸으로! (빠름)

Search Optimization = 이 "색인" 역할을 합니다.
→ 정식 명칭은 Search Access Path(검색 접근 경로)


어떤 쿼리에 좋을까?

Point Lookup Query = 소수의 행만 찾는 쿼리

-- 이런 쿼리들이 빨라짐!
WHERE USER_EMAIL = 'semper.google.edu'   -- 등호(=)
WHERE USER_ID IN (4, 5)                  -- IN
✅ 좋음: 5백만 행 중 → 딱 2개 찾기 (선택적!)
❌ 나쁨: 전체의 절반을 가져오는 쿼리 (의미 없음)

사용법

ALTER TABLE MY_TABLE ADD SEARCH OPTIMIZATION;   -- 켜기
ALTER TABLE MY_TABLE DROP SEARCH OPTIMIZATION;  -- 끄기
SHOW TABLES LIKE '%MY_TABLE%';                  -- 상태 확인

동작 방식

1. 켜면 → 백그라운드에서 "Search Access Path" 자동 생성
2. 각 micro-partition에 어떤 값이 있는지 미리 기록
3. 검색 시 → 필요 없는 파티션은 건너뜀(skip) → 빠름!

💡 데이터가 바뀌면 → 자동으로 업데이트 (사람이 관리 안 해도 됨)
💡 작업을 막지 않음 (켜둔 채로 INSERT/UPDATE 가능)


비용 (⭐)

종류비용
Storage색인 저장 공간 필요 → 테이블 클수록 비용 ↑
Snowflake-managed compute시간당 10 크레딧
Cloud Services compute시간당 5 크레딧

🆚 Clustering이랑 뭐가 달라?

ClusteringSearch Optimization
잘하는 것범위/정렬 (날짜 등)딱 집어 찾기 (point lookup)
비유책을 순서대로 정렬책 위치 색인 만들기

💡 둘은 같이 써도 됨 (한 쿼리가 둘 다 혜택 가능)


🎯 핵심 요약

키워드
정체point lookup 빠르게 하는 기능
핵심 구조Search Access Path (= 색인)
조건Enterprise Edition 이상
명령어ADD / DROP SEARCH OPTIMIZATION
비용10크레딧/h (관리형), 5크레딧/h (클라우드)
특징자동 유지, 작업 안 막음

0개의 댓글