Firebirdクエリの最適化
Firebirdクエリの最適化では、SELECT文の実行方法について説明します。プラン、統計、アクセス方法、チューニングパターン、MON$とTrace APIを使用した低速クエリの検出方法などが含まれます。
シラバス
-
SELECTクエリのパフォーマンス - クエリの実行方法
- クライアント・サーバー方式
- 準備、プラン生成、実行、フェッチ、バッファリング
-
実行統計
- 読み取り、書き込み、フェッチ、時間
- データベースキャッシュ、ディスク、CPU
- ガベージが実行に与える影響
- キャッシュヒット(Classic vs SuperServer)
-
アクセス方法 / データパス
- NATURALスキャン
- INDEX検索:Bツリー、レコードポインタ、方向、例
- インデックスの強制使用、インデックスのビットマージ
- テーブルのカーディナリティとインデックスの選択性
- WHERE句でのインデックス無効化
- インデックスORDER vs SORT(
firebird.conf設定) - ORDER BY / GROUP BYでのインデックス無効化
- ストアドプロシージャとビューでのプラン
-
クエリチューニング
- PLANの読み方
- オプティマイザの調整
WHERE FIELD IN (…)- LIKE、CONTAINING、STARTING WITH
- JOIN:暗黙的 vs 明示的、不正なJOIN、LEFT/RIGHT、自己結合
- UPDATE + SELECT
- MAX、MIN、COUNT、AVG、SUM
- IN vs EXISTS vs MERGE
WHERE (X AND Y) OR (K AND N)
-
MON$とTrace APIを使用した低速クエリの追跡
- MON$とTraceとは
- 重要なMON$フィールド
- Trace APIのパラメータと出力
- ツール(HQbirdモニタリングを含む)