アプリケーションのクエリのテスト(「Firebird 3への移行ガイド」からの抜粋)
これは「Migration Guide To Firebird 3」という書籍からの抜粋です。著者はCarlos Cantu氏です。
Firebirdのバージョンを変更すると、既存のクエリに問題が発生する可能性があります。新しく予約語になった単語や、以前は受け入れられていた不正なSQLを使用しているクエリが、パフォーマンスの低下から完全な失敗まで、さまざまな問題を引き起こすことがあります。
アプリケーションには、画面上の情報の参照からレポート作成、データ入力と検証まで、数百ものクエリが含まれていることがよくあります。外部スクリプトや、SQLクエリを動的に生成するクエリジェネレータが存在する可能性もあるため、アプリケーションのソースを徹底的にチェックしても、すべてのSQLクエリの組み合わせを確認することはできません。
IBSurgeonのHQbird FBScannerは、既存のアプリケーションがFirebird 3で動作するかどうかを確認し、移行するアプリケーションのSQLクエリにエラーや遅延がないかを調べるのに役立つツールです。FBScannerは、Firebirdサーバーを監視および最適化する分析ツールのパッケージであるHQbird Standardの一部です。これにより、現在のFirebirdバージョンでクエリをログに記録し、新しいFirebirdサーバーでそれらをテストすることができます。
FBScannerは、クライアントとサーバー間のプロキシとして機能し、すべての通信(接続、トランザクション、SQLステートメントのテキスト、フェッチ数、SQLプラン、エラー、クエリの準備時間と実行時間)をログに記録します。
現在のFirebirdバージョンを使用している間にFBScannerをインストールし、通信を監視してクエリをログデータベースに保存するように設定できます。最も一般的な構成は、FBScannerを同じサーバーのポート3050にインストールし、Firebirdのポートを別の値(たとえば3053)に変更することです。この場合、既存のFirebirdアプリケーションは、接続文字列を変更することなく、サーバー上のデータベースで引き続き動作します:

また、FBScannerを別のコンピュータに設定し、一部のクライアントだけをFBScanner経由でルーティングして、その通信のみをキャプチャすることも可能です。
数日間の監視後、ログデータベースにはアプリケーションで使用される多数のクエリが含まれます。理想的には、時間と実行に関する詳細情報を含む、データベース内のすべてのSQLアクティビティをカバーする必要があります:
FBScannerを使用すると、ログに記録したクエリを実行できます。ログデータベースを使用して、テスト用のFirebird 3サーバーをセットアップし、元のデータベースをそのサーバーに復元して、FBScanner Log Analyzerを使用してログに記録されたクエリを実行できます。
FBScannerは、パフォーマンス情報を含む結果をグリッドに表示するため、現在の実行時間を以前のサーバーで得られた結果と比較し、古いPLANと新しいPLANを比較できます。
グリッド内の情報は、Excelスプレッドシートにエクスポートできます。
クエリの実行時間を比較する際は、外部要因が結果に影響を与えることに注意してください。考慮すべき点の1つは、オペレーティングシステムまたはFirebirdのキャッシュが「コールド」か「ホット」かです。明らかに、ほとんどの情報がすでにキャッシュされている状態で実行されるクエリは、ディスクからデータを取得する場合よりも高速です。
「Migration Guide To Firebird 3」の完全版はこちらから購入できます。
FBScannerを含むHQbird Standardはこちらから購入できます。「Migration Guide To Firebird 3」を購入された方には、HQbird Standardを10%割引で提供しています。割引クーポンコードについては、お問い合わせください。
IBSurgeonはまた、包括的な「Firebird移行サービス」も提供しています。複雑なストアドプロシージャ、クエリ、その他のロジックを含むデータベースを、初期のFirebirdバージョン(1.0、2.0、2.1、2.5)から最新版(2.5、3.0、または4.0)への移行を支援できます。