デバッグツールの概要
| ツール | 目的 | 使用する場面 |
|---|---|---|
explain() | 実行計画を確認 | 実行される SQL の内容を把握する |
| プロファイラ | パフォーマンスを測定 | 遅い処理を特定する |
| ログ | 実行の詳細を確認 | 想定外の動作をデバッグする |
クイック判断表
| 必要なもの | ツール | コマンド |
|---|---|---|
| 実行計画を確認 | explain() | ds.explain() |
| パフォーマンスを測定 | プロファイラ | config.enable_profiling() |
| SQLクエリをデバッグ | ログ | config.enable_debug() |
| 上記すべて | 組み合わせ | 以下を参照 |
クイックセットアップ
すべてのデバッグ機能を有効にする
explain() メソッド
Query
Response
プロファイリング
Query
Response
ログ
よくあるデバッグのシナリオ
1. クエリが期待どおりの結果を返さない
2. クエリの実行が遅い
3. Engine 選択を理解する
4. cache に関する問題のデバッグ
ベストプラクティス
1. デバッグは本番環境ではなく開発環境で行う
2. 大規模なクエリを実行する前に explain() を活用する
3. 最適化の前にプロファイリングを行う
4. 結果が正しくない場合は SQL を確認する
デバッグツールのまとめ
| ツール | コマンド | 出力 |
|---|---|---|
| 実行プランの表示 | ds.explain() | 実行ステップ + SQL |
| 詳細な実行プラン | ds.explain(verbose=True) | + メタデータ |
| SQL の表示 | ds.to_sql() | SQL クエリ文字列 |
| デバッグを有効にする | config.enable_debug() | 詳細なログ |
| プロファイリングを有効にする | config.enable_profiling() | タイミングデータ |
| プロファイラレポート | get_profiler().report() | パフォーマンスの概要 |
| プロファイラをクリア | get_profiler().reset() | タイミングデータをクリア |
次のステップ
- explain() メソッド - 実行計画の詳細な解説
- プロファイリングガイド - パフォーマンス計測
- ログ設定 - ログレベルとフォーマットの設定