sql-pro
SQLクエリの最適化、データベーススキーマの設計、パフォーマンス問題のトラブルシューティングを行います。ユーザーがクエリが遅い理由を尋ねたり、複雑なJOINや集計の書き方で支援が必要な場合、データベースのパフォーマンス問題を指摘したり、スキーマの設計・移行を希望する場合に利用してください。複雑なクエリ、ウィンドウ関数、CTE、インデックス戦略、クエリプラン分析、カバリングインデックスの作成、再帰クエリ、EXPLAIN/ANALYZEの解釈、クエリのベンチマーク比較、PostgreSQL・MySQL・SQL Server・Oracleなどのデータベース間でのクエリ移行に対応します。
description の原文を見る
Optimizes SQL queries, designs database schemas, and troubleshoots performance issues. Use when a user asks why their query is slow, needs help writing complex joins or aggregations, mentions database performance issues, or wants to design or migrate a schema. Invoke for complex queries, window functions, CTEs, indexing strategies, query plan analysis, covering index creation, recursive queries, EXPLAIN/ANALYZE interpretation, before/after query benchmarking, or migrating queries between database dialects (PostgreSQL, MySQL, SQL Server, Oracle).
SKILL.md 本文
SQL Pro
コアワークフロー
- スキーマ分析 - データベース構造、インデックス、クエリパターン、パフォーマンスボトルネックをレビュー
- 設計 - CTE、ウィンドウ関数、適切なJOINを使用してセットベースの操作を作成
- 最適化 - 実行プランを分析し、カバリングインデックスを実装し、テーブルスキャンを排除
- 検証 -
EXPLAIN ANALYZEを実行し、大規模テーブルでシーケンシャルスキャンがないことを確認します。クエリが100ms未満のターゲットを満たさない場合、インデックス選択またはクエリ再作成で反復してから先に進みます - ドキュメント化 - クエリの説明、インデックスの根拠、パフォーマンスメトリクスを提供
リファレンスガイド
コンテキストに基づいて詳細なガイダンスを読み込みます:
| トピック | リファレンス | 読み込むタイミング |
|---|---|---|
| クエリパターン | references/query-patterns.md | JOIN、CTE、サブクエリ、再帰クエリ |
| ウィンドウ関数 | references/window-functions.md | ROW_NUMBER、RANK、LAG/LEAD、分析 |
| 最適化 | references/optimization.md | EXPLAIN プラン、インデックス、統計、チューニング |
| データベース設計 | references/database-design.md | 正規化、キー、制約、スキーマ |
| 方言の違い | references/dialect-differences.md | PostgreSQL vs MySQL vs SQL Server の仕様 |
クイックリファレンス例
CTE パターン
-- 高コストのサブクエリロジックを分離して再利用と可読性を向上
WITH 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' -- JOINの前にフィルタリング
)
SELECT customer_id, order_id, total_amount
FROM ranked_orders
WHERE rn = 1; -- 顧客ごとの最新の完了注文
ウィンドウ関数パターン
-- パーティション内の累計と順位 — セルフJOINは不要
SELECT
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_rank
FROM employees;
EXPLAIN ANALYZE 解釈
-- PostgreSQL: 実際の行数と推定値を確認するために常にANALYZEを使用
EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT)
SELECT *
FROM orders o
JOIN customers c ON c.id = o.customer_id
WHERE o.created_at > NOW() - INTERVAL '30 days';
出力で確認する主な項目:
- Seq Scan on large table → インデックスを追加または修正
- actual rows ≫ estimated rows →
ANALYZE <table>を実行して統計を更新 - Buffers: shared hit vs read → 高い
readカウントはキャッシュ/インデックスの欠落を示す
最適化前後の例
-- 前:相関サブクエリ、行ごとに1回の実行(遅い)
SELECT order_id,
(SELECT SUM(quantity) FROM order_items oi WHERE oi.order_id = o.id) AS item_count
FROM orders o;
-- 後:単一の集約JOIN(高速)
SELECT o.order_id, COALESCE(agg.item_count, 0) AS item_count
FROM orders o
LEFT JOIN (
SELECT order_id, SUM(quantity) AS item_count
FROM order_items
GROUP BY order_id
) agg ON agg.order_id = o.id;
-- サポート用カバリングインデックス(クエリで使用されるすべての列を含む)
CREATE INDEX idx_order_items_order_qty
ON order_items (order_id)
INCLUDE (quantity);
制約事項
実施する必要がある
- 最適化を推奨する前に実行プランを分析
- 行ごとの処理ではなくセットベースの操作を使用
- クエリ実行の早い段階でフィルタリングを適用(可能ならJOIN前)
- 存在確認には COUNT ではなく EXISTS を使用
- 比較と集約で NULL を明示的に処理
- 頻繁なクエリ用にカバリングインデックスを作成
- 本番スケールのデータボリュームでテスト
実施してはならない
- 本番クエリで SELECT * を使用
- セットベースの操作が機能する場合にカーソルを使用
- 特定の方言をターゲットとする場合、プラットフォーム固有の最適化を無視
- データボリュームとカーディナリティを考慮せずにソリューションを実装
出力テンプレート
SQLソリューションを実装する際は、以下を提供してください:
- インラインコメント付きの最適化されたクエリ
- 根拠付きの必要なインデックス
- 実行プラン分析
- パフォーマンスメトリクス(前後比較)
- 該当する場合、プラットフォーム固有の注記
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- cedriclefoudelatech
- ライセンス
- MIT
- 最終更新
- 2026/5/10
Source: https://github.com/cedriclefoudelatech/TIMLEMEILLEURIDF / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。