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や集計結合などの効率的なパターンを用いてクエリを書き換えます。
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
コピー





家
