レッスン 6
SQL デバッグワークフロー
フィルタ、JOIN、パラメータ、方言固有の構文を切り分けて SQL を安全にデバッグします。
クエリが間違った行、多すぎる行、または行なしを返すとき、すべてを書き直すことから始めないでください。まず構造を読みやすくし、可変部分を切り分けます。
実践的なワークフロー
- SQL を整形し、句と JOIN を見えるようにする。
- ベーステーブルと最小限の有用な
SELECTリストを確認する。 - オプションのフィルタを一時的に削除する。
- フィルタを一つずつ戻す。
- JOIN 条件とリレーションシップのカーディナリティを確認する。
- 安全なローカル環境で、アプリケーションパラメータを既知のリテラル値に置き換える。
- 日付関数、引用、JSON 演算子など方言固有の構文を確認する。
このワークフローは安全であるのに十分遅く、本番デバッグには十分速いです。
フォーマットと実行を分離する
フォーマッタは、サポートされた文法でテキストが解析可能かどうかを示せます。次のことは分かりません。
- テーブルがデータベースに存在するか
- 選択列にインデックスがあるか
- パラメータが期待する値を持っているか
- クエリがプロダクトにとって意味的に正しいか
この境界が重要です。フォーマッタは可読性に使い、データベースコンソール、ログ、EXPLAIN プラン、テストで実行挙動を確認します。
要点
既知の正常なコアにクエリを縮小し、意図的に複雑さを戻すと、多くの SQL デバッグが管理可能になります。
コピーしたクエリが安全にデバッグするには密すぎるとき、SQL Formatter を最初のステップとして使ってください。