発行される SQLの確認方法

2020年9月11日はじめてのWebFOCUS

このコンテンツでは、レポート作成時のデバッグ方法をご紹介しています。

必要ライセンスWebFOCUS Reporting Server制約事項特になし
カテゴリデバッグ動作確認バージョン8.2.06

デバッグしてみよう

レポートのリクエスト(集計、ソート、一時項目、抽出条件 等)が適切にSQLに変換される状況を「SQLの最適化」と呼びます。SQLが最適化されていない場合、思うようなパフォーマンスや結果が出ないことがあるためSQLトレースを取得して確認をします。

WebFOCUSは接続する対象がデータベースの場合、SQLを生成して発行します。
どのようなSQLが発行されているのか確認するための手段としてSQLトレースを提供しています。

例えば、こんなとき・・・

・作成したリクエストがSQLにどのように変換されているか確認したい
・レスポンスが遅い場合に、ボトルネックの切り分けとしてSQLを確認したい
・意図した結果が出ない場合に、問題を切り分けるため材料としてSQLを確認したい

InfoAssistで発行SQLを確認する場合

InfoAssistを起動

レポートをInfoAssistで開きます。

SQLトレースの実行

[実行]ボタン横の[▼]をクリックし、[SQLトレース]を選択します。

どちらもSQLトレースを取得する機能ですが、以下の違いがあります。
通常は「SQLトレース」を使用します。
 SQLトレース:リクエストのSQLコマンドを返します。
 SQLプレビュートレース:ライブプレビュー時のSQLコマンドを返します。

SQLが表示されます。

App Studioで発行SQLを確認する場合

App Studioを起動

レポートをApp Studioで開きます。

SQLトレースの実行

[表示]タブを選択し、[生成されたSQLを表示]をクリックします。

SQLが表示されます。

発行SQLを確認するコマンドを挿入する場合

テキストで編集

InfoAssist、もしくは、App Studioでレポートをテキストで開き、リクエストの先頭に以下のコマンドを張り付けます。

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

SQLトレースの実行

[実行]ボタンをクリックします。

表示された結果画面で右クリックし、メニューから[ページのソースを表示]を選択します。

SQLが表示されます。

以上が、SQLトレースの取得方法です。