クイックスタート
プロファイリングの有効化
Profiler API
Profilerの取得
report()
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
min_duration_ms | float | 0.1 | この時間以上のステップのみを表示 |
- 各ステップの所要時間 (ミリ秒)
- 親/合計時間に占める割合
- 操作の階層構造
- 各ステップのメタデータ (例:
ops_count、ops)
step()
clear()
summary()
レポートを理解する
ステップ名
| ステップ名 | 説明 |
|---|---|
Total Execution | 全体の実行時間 |
Query Planning | クエリのプランニングにかかった時間 |
SQL Segment N | SQL セグメント N の実行 |
SQL Execution | 実際の SQL クエリの実行 |
Result to DataFrame | 結果を pandas の DataFrame に変換 |
Cache Check | クエリキャッシュの確認 |
Cache Write | 結果を cache に書き込み |
実行時間
- 計画ステップ (Query Planning): 通常は高速
- 実行ステップ (SQL Execution): 実際の処理が行われる部分
- 転送ステップ (Result to DataFrame): データを pandas に変換する部分
ボトルネックの特定
プロファイリングパターン
単一のクエリをプロファイリングする
複数クエリのプロファイリング
アプローチの比較
最適化のヒント
1. SQL実行時間を確認する
SQL execution がボトルネックになっている場合:
- フィルターを追加してデータ量を減らす
- CSV ではなく Parquet を使用する
- 適切な索引が設定されているか確認する (データベースソースの場合)
2. I/O時間を確認する
read_csv または read_parquet がボトルネックになっている場合:
- Parquet を使用する (列指向かつ圧縮可能)
- 必要なカラムだけを読み取る
- 可能であればソース側でフィルタする
3. データ転送を確認する
to_df が遅い場合:
- 結果セットが大きすぎる可能性があります
- フィルターを追加するか、件数を制限します
- プレビューには
head()を使用します