sql-pro
jeffallan/claude-skills
SQL 쿼리를 최적화하고, 데이터베이스 스키마를 설계하며, 성능 문제를 해결합니다. 사용자가 쿼리 실행 속도가 느린 이유를 묻거나, 복잡한 조인이나 집계 쿼리 작성에 도움이 필요하거나, 데이터베이스 성능 문제를 언급하거나, 스키마를 설계하거나 마이그레이션하고자 할 때 활용하십시오. 복잡한 쿼리, 윈도우 함수, CTE, 인덱싱 전략, 쿼리 계획 분석, 커버링 인덱스 생성, 재귀 쿼리, EXPLAIN/ANALYZE 해석, 쿼리 실행 전후 벤치마킹, 또는 데이터베이스 간 쿼리 마이그레이션과 관련된 상황에서 호출하십시오.
...모든 것을 확장하십시오소개 sql-pro
SQL Pro는 데이터베이스 쿼리 효율성을 높이고, 스키마 설계를 최적화하며, 성능 문제를 해결하도록 설계된 전문 AI 스킬입니다. 이 스킬은 특히 복잡한 조인, 집계 또는 대규모 데이터 세트를 다룰 때 쿼리 실행 속도가 느려지거나 유지 관리가 어려워지는 등 관계형 데이터베이스에서 흔히 발생하는 문제를 해결합니다. 이 스킬은 SQL 쿼리, 실행 계획, 인덱싱 전략을 분석하여 사용자가 병목 현상을 파악하고 모범 사례를 적용함으로써 더 빠르고 예측 가능한 데이터베이스 성능을 달성할 수 있도록 지원합니다.
이 스킬은 스키마 분석으로 시작하여 데이터베이스 구조, 인덱스 및 쿼리 패턴을 평가해 성능 제약 요인을 정확히 파악하는 체계적인 워크플로를 제공합니다. 이후 공통 테이블 표현식(CTE), 윈도우 함수, 적절한 조인 전략과 같은 고급 기법을 활용하여 쿼리를 설계하도록 지원합니다. 최적화 기능에는 실행 계획 분석, 커버링 인덱스 생성, 전체 테이블 스캔 제거, 그리고 성능 목표 달성을 위한 반복적 개선이 포함됩니다. 또한 SQL Pro는 `EXPLAIN ANALYZE` 출력을 통한 검증에 중점을 두어, 쿼리가 효율적으로 실행되고 인덱스가 효과적으로 활용되도록 보장합니다. 유지 관리 및 지식 전수를 지원하기 위해 쿼리, 인덱스 적용 근거, 성능 지표에 대한 포괄적인 문서가 제공됩니다.
SQL Pro는 PostgreSQL, MySQL, SQL Server 또는 Oracle 데이터베이스를 다루며 쿼리 튜닝, 스키마 마이그레이션 또는 성능 최적화에 대한 전문 지식이 필요한 데이터베이스 관리자, 개발자 및 데이터 엔지니어를 대상으로 합니다. 대표적인 사용 사례로는 느린 쿼리 가속화, 정규화된 스키마 설계, 데이터베이스 방언 간 쿼리 변환, 실행 계획 분석, 효율성을 저하시키지 않으면서 복잡한 분석 구현 등이 있습니다. 이 도구의 지침은 재귀 쿼리, 윈도우 함수, 성능 벤치마킹과 같은 고급 SQL 기능이 필요한 시나리오에서 특히 유용하므로, 고성능의 확장 가능한 데이터베이스 애플리케이션을 유지하려는 팀에게 핵심 도구로 자리매김하고 있습니다.
자주 묻는 질문
SQL Pro를 사용하여 느린 쿼리를 최적화하려면 어떻게 해야 합니까?
쿼리와 관련 스키마 정보를 입력하세요. SQL Pro는 실행 계획을 분석하고, 인덱스 개선 사항을 제안하며, CTE나 집계 조인(aggregation join)과 같은 효율적인 패턴을 사용하여 쿼리를 재작성합니다.
SQL Pro는 어떤 데이터베이스 시스템을 지원하나요?
SQL Pro는 PostgreSQL, MySQL, SQL Server 및 Oracle을 지원하며, 이러한 데이터베이스 방언 간의 차이점에 대한 지침도 제공합니다.
SQL Pro는 윈도우 함수가 포함된 복잡한 분석 쿼리도 처리할 수 있나요?
네. ROW_NUMBER, RANK, SUM, LAG/LEAD와 같은 윈도우 함수를 불필요한 셀프 조인 없이 파티션 내에서 효율적으로 사용할 수 있도록 안내합니다.
SQL Pro에서 EXPLAIN ANALYZE를 사용할 때 무엇을 확인해야 합니까?
주요 확인 사항으로는 대용량 테이블에 대한 순차 스캔 감지, 실제 행 수와 예상 행 수의 비교, 버퍼 히트 및 읽기 횟수 검토를 통해 누락된 인덱스나 오래된 통계를 파악하는 것이 있습니다.
SQL Pro 사용에 제한 사항이나 필수 조건이 있나요?
사용자는 데이터베이스 스키마에 대한 액세스 권한과 쿼리 실행 및 실행 계획 분석을 수행할 수 있는 충분한 권한을 가지고 있어야 합니다. 성능 개선 효과는 적절한 인덱싱, 쿼리 구조 및 데이터베이스 통계에 따라 달라집니다.
SQL Pro
Core Workflow
- Schema Analysis - Review database structure, indexes, query patterns, performance bottlenecks
- Design - Create set-based operations using CTEs, window functions, appropriate joins
- Optimize - Analyze execution plans, implement covering indexes, eliminate table scans
- Verify - Run
EXPLAIN ANALYZEand confirm no sequential scans on large tables; if query does not meet sub-100ms target, iterate on index selection or query rewrite before proceeding - Document - Provide query explanations, index rationale, performance metrics
Reference Guide
Load detailed guidance based on context:
| Topic | Reference | Load When |
|---|---|---|
| Query Patterns | references/query-patterns.md | JOINs, CTEs, subqueries, recursive queries |
| Window Functions | references/window-functions.md | ROW_NUMBER, RANK, LAG/LEAD, analytics |
| Optimization | references/optimization.md | EXPLAIN plans, indexes, statistics, tuning |
| Database Design | references/database-design.md | Normalization, keys, constraints, schemas |
| Dialect Differences | references/dialect-differences.md | PostgreSQL vs MySQL vs SQL Server specifics |
Quick-Reference Examples
CTE Pattern
-- Isolate expensive subquery logic for reuse and readabilityWITH ranked_orders AS ( SELECT customer_id, order_id, total_amount, ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY order_date DESC) AS rn FROM orders WHERE status = 'completed' -- filter early, before the join)SELECT customer_id, order_id, total_amountFROM ranked_ordersWHERE rn = 1; -- latest completed order per customer
Window Function Pattern
-- Running total and rank within partition — no self-join requiredSELECT department_id, employee_id, salary, SUM(salary) OVER (PARTITION BY department_id ORDER BY hire_date) AS running_payroll, RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS salary_rankFROM employees;
EXPLAIN ANALYZE Interpretation
-- PostgreSQL: always use ANALYZE to see actual row counts vs. estimatesEXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT)SELECT *FROM orders oJOIN customers c ON c.id = o.customer_idWHERE o.created_at > NOW() - INTERVAL '30 days';
Key things to check in the output:
- Seq Scan on large table → add or fix an index
- actual rows ≫ estimated rows → run
ANALYZE <table>to refresh statistics - Buffers: shared hit vs read → high
readcount signals missing cache / index
Before / After Optimization Example
-- BEFORE: correlated subquery, one execution per row (slow)SELECT order_id, (SELECT SUM(quantity) FROM order_items oi WHERE oi.order_id = o.id) AS item_countFROM orders o;-- AFTER: single aggregation join (fast)SELECT o.order_id, COALESCE(agg.item_count, 0) AS item_countFROM orders oLEFT JOIN ( SELECT order_id, SUM(quantity) AS item_count FROM order_items GROUP BY order_id) agg ON agg.order_id = o.id;-- Supporting covering index (includes all columns touched by the query)CREATE INDEX idx_order_items_order_qty ON order_items (order_id) INCLUDE (quantity);
Constraints
MUST DO
- Analyze execution plans before recommending optimizations
- Use set-based operations over row-by-row processing
- Apply filtering early in query execution (before joins where possible)
- Use EXISTS over COUNT for existence checks
- Handle NULLs explicitly in comparisons and aggregations
- Create covering indexes for frequent queries
- Test with production-scale data volumes
MUST NOT DO
- Use SELECT * in production queries
- Use cursors when set-based operations work
- Ignore platform-specific optimizations when targeting a specific dialect
- Implement solutions without considering data volume and cardinality
Output Templates
When implementing SQL solutions, provide:
- Optimized query with inline comments
- Required indexes with rationale
- Execution plan analysis
- Performance metrics (before/after)
- Platform-specific notes if applicable
Documentation
모든 파일
6개 파일sql-pro 설치
스킬 파일을 다운로드하여 .claude/skills/ 디렉터리에 압축을 풀어주세요.
ZIP 다운로드저장소를 클론하고 스킬 파일을 프로젝트에 복사하세요.
git clone https://github.com/Jeffallan/claude-skills/blob/main/skills/sql-pro/SKILL.md # Copy SKILL.md to your .claude/skills/ directory
복사





집
