本番Firebirdデータベースで遅いSELECT文を追跡する方法
Firebird SQLには、TraceAPIプラグインと呼ばれるメカニズムを通じて、遅いSQLクエリやその他のパフォーマンス問題を追跡するための非常に適した手段があります。HQbird(大規模データベース向けの高度なFirebirdディストリビューション)には、TraceAPIを実装し、Firebirdのすべてのパフォーマンス問題を追跡するための使いやすいGUIインターフェースを提供するツールFBPerfMonが含まれています。
本番Firebirdデータベースで最も遅いSELECT SQLステートメントを見つけるには、次の手順に従ってください:
- HQbird ダウンロード情報をリクエストします。(クイックチェックにはトライアル版で十分です)。ダウンロード情報はメールで送信されます。
- サーバー(WindowsまたはLinux)にHQbird ServerSideを、Windows搭載のコンピュータにHQbird Adminをダウンロードしてインストールします。Windowsでは、HQbird ServerSideインストーラが必要なTrace APIプラグインを自動的にインストールします(Firebird 2.5または3.0用、32ビットまたは64ビット用)。Linuxでは、Firebird/pluginフォルダへの手動コピーが必要です。標準プラグイン(fbtrace.dll/fbtrace.so)を削除し、Firebirdを再起動して新しいプラグインを有効にします。
- WindowsスタートメニューからHQbird PerfMon Settingsを起動します:IBSurgeon/HQbird Firebird Admin/FBPerfMon Settings。
- トレースするデータベースを選択して追加します。アプリケーションで使用しているものとまったく同じ接続文字列を指定してください。エイリアスを使用する場合はエイリアスを、完全な接続文字列を使用する場合は完全なパスを指定します。
- データベースのトレースセッションを追加します
- ログデータベースを作成します(トレース結果を保存する場所)
- 追跡するパラメータを指定します(最初はデフォルト設定を使用し、後で変更できます。たとえば、SQLプランログを有効にします)
- トレースセッションを開始します。正常に開始されると通知が表示され、その後すべてのSQLクエリと関連情報がログデータベースに書き込まれます。トレースはすべての接続からデータを取得するため、ログはかなり急速に増加する可能性があることに注意してください。
- しばらく待って(問題のあるクエリをキャプチャするのに十分な時間、通常は15〜20分)、トレースセッションを停止します。
- HQbird PerfMon Viewerを起動し(Windowsスタートメニューから)、リストから最近のトレースセッションで使用されたログデータベースを選択します(または「既存のデータベースを開く」を使用します)。
- HQbird PerfMon Viewerはサーバー負荷グラフから始まります。ステートメントを表示するには、「詳細」をクリックし、「ステートメント」タブで「合計時間」ですべてのSQLクエリを並べ替えます。
- 「SQLテキストをコピー」ボタンで遅いSQLクエリのテキストをコピーします。

詳細と詳しい説明については、HQbirdユーザーガイドのセクション_4.3. Trace APIを使用したモニタリング:HQbird FBPerfMon_(64ページから)を参照してください。