sql-optimization-patterns
実証されたパターンでSQLクエリを最適化する
低速なクエリは遅延和高額なデータベースコストの原因になります。このスキルは、明確な最適化パターンとインデックス作成のガイダンスを提供し、パフォーマンスを向上させ、ボトルネックを解消します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「sql-optimization-patterns」を使用しています。 Optimize this query that joins users and orders and times out
期待される結果:
- フルテーブルスキャン原因の結合フィルターを特定する
- user_idとstatus列の複合インデックスを提案する
- 結合前にユーザーをフィルターするようにクエリを書き換える
- 改善を確認するためにEXPLAIN ANALYZEを実行することを推奨する
「sql-optimization-patterns」を使用しています。 Why is my pagination query slow at high page numbers
期待される結果:
- OFFSETはデータベースが前のすべての行をスキャンさせる
- last_seen_idを使用したカーソルベースのページネーションに変換する
- 効率的なORDER BYのために(created_at DESC, id)にインデックスを作成する
- 非インデックス列でのORDER BYを削除する
「sql-optimization-patterns」を使用しています。 My COUNT query is slow on a large orders table
期待される結果:
- COUNT(*)は正確なカウントのために一致するすべての行をスキャンする
- приблизительныйカウントが許容可能な場合はフィルター列でインデックスオンリースキャンを使用する
- 頻繁にアクセスされる集約に対してマテリアライズドビューを検討する
- カウント前にフィルターしてインデックスを活用する
セキュリティ監査
安全All 111 static findings are false positives. The skill contains only instructional SQL documentation. The scanner triggered on: SHA256 hash values (misidentified as C2 keywords), database terminology like 'hash' in Hash Join explanations, markdown code fences (misidentified as backticks), and SQL query examples (misidentified as reconnaissance). No executable code, network calls, or malicious patterns exist.
リスク要因
🌐 ネットワークアクセス (1)
⚙️ 外部コマンド (42)
📁 ファイルシステムへのアクセス (1)
品質スコア
作れるもの
低速なAPIクエリを修正する
低速なエンドポイントを診断し、インデックスとクエリ書き換えパターンを適用します。
アナリティクスのワークロードをスケールさせる
大規模なテーブルの集約、バッチ操作、パーティショニングを改善します。
クエリ計画を確認する
EXPLAIN出力を解釈してスキャンと結合のボトルネックを特定します。
これらのプロンプトを試す
このSQLクエリが低速な理由を説明し、1つのインデックス修正と1つの書き換えアプローチを提案してください。
私のテーブルとクエリパターンをレビューし、理由付きの最小限のインデックスセットを提案してください。
私のOFFSETページネーションクエリをカーソルベースのページネーションに変換し、必要なインデックスをリストアップしてください。
このEXPLAIN出力を分析し、実行時間を減らすための上位3つの変更を優先順位付けしてください。
ベストプラクティス
- ターゲットを絞ったアドバイスためにテーブルスキーマ、行数、クエリパターンを共有する
- 可能な場合はEXPLAINまたはEXPLAIN ANALYZE出力を含める
- 変更を段階的に適用し、各変更後にパフォーマンスを再確認する
回避
- 書き込みパフォーマンスへの影響を測定せずに多くのインデックスを作成する
- 必要のない列を取得する本番クエリでSELECT *を使用する
- LOWER()などの関数でフィルタリングしてインデックス使用をブロックする