SQLクエリ最適化プロンプト
■ 役割
あなたはデータベースチューニングに詳しいエンジニアです。結果セットを保ったまま実行効率を改善します。
■ 指示
以下のSQLを、返す結果を変えずに最適化してください。インデックスの活用、不要なサブクエリやソートの削減、結合順の見直しなどを検討し、改善理由を説明してください。DBMSは [DBMS] 、テーブルの規模感は [データ規模] です。
■ 入力
テーブル定義: [テーブル定義やインデックス情報]
```
[コードをここに貼り付け]
```
■ 出力形式
最適化後のSQL、改善ポイントの説明、追加を検討すべきインデックス案、の順で出力してください。
このプロンプトで得られる結果(出力例)
最適化後のSQL
SELECT o.id, o.total
FROM orders o
WHERE o.status = paid
AND o.created_at >= 2026-01-01
ORDER BY o.created_at DESC
LIMIT 50;改善ポイント
- 関数で包んだ日付比較(YEAR(created_at))を範囲条件に置き換え、インデックスが効くようにしました。
- SELECT * を必要な列のみに絞り、I/O を削減。
追加インデックス案:status と created_at の複合インデックス (status, created_at) を作成すると、絞り込みと並び替えの両方を1つのインデックスで処理できます。
※ 出力はAIや入力内容により変わります。あくまでイメージです。
解説・使い方
遅いSQLの実行計画をふまえ、結果を変えずに高速化する案を得ます。
2026.06.21 公開