WebFOCUSが発行するSQLを見てみよう!

2024年3月23日テクニカルメモ

概要

WebFOCUSのレスポンスを調査する際に、WebFOCUSからどのようなSQLが発行されているかを知ることは非常に有益です。

また、WebFOCUSをバージョンアップして動作が変わった場合、以前のバージョンでは発行されていなかったSQLが発行される様に仕様変更されることもあります。これは性能面を考慮しての機能拡張の側面があります。

WebFOCUSから検索対象のデータベースに発行されているSQLは、デバックコマンドをプロシジャに指定することで確認できます。

サンプル

以下のSETコマンドをプロシジャの先頭に追加します。

SET TRACEOFF = ALL
SET TRACEON = STMTRACE//CLIENT
SET TRACEON = SQLAGGR//CLIENT
SET TRACEUSER = ON
SET XRETRIEVAL = OFF
-RUN

コマンド解説

全種類のトレースの無効化

SET TRACEOFF = ALL

SQLトレースの有効化

SET TRACEON = STMTRACE//CLIENT

//CLIENT を指定しない場合、以下のディレクトリ配下にトレースファイルが作成されます。

ディレクトリ名
drive:\ibi\srvXX\wfs\edatemp
(XXにはリリースバージョンが入ります)

ファイル名
tsnnnnnn.trc
(nnnnnnにはエージェント毎に振られる連番が入ります)

データベースで集計処理が行われたか確認

SET TRACEON = SQLAGGR//CLIENT

データベース側で集計処理が行われた場合のメッセージ

(INF32089) 集計が終了しました …

データベース側で集計処理が行われなかった場合のメッセージ

(FOC2590) 次の理由で、集計されませんでした
(FOC2594) 指定されている動詞では集計することができません

トレースを有効化

SET TRACEUSER = ON

データベースからのデータ取得を行わず、トレースの取得のみ行う

SET XRETRIEVAL = OFF

このコマンドを指定することでデータベースからデータの取得を行わないためデータベースへの負荷を軽減できます。SQLの処理時間も計測したい場合は、このコマンドは指定しません。