TDVがターゲットのデータソースへ実際に送信したSQL文を、ログ出力して確認したい場合があります。
本記事ではその設定方法や出力例について説明します。
なお、この設定は大量のデバッグログを出力しますので、本番環境でのご使用は慎重にご検討ください。
テスト環境、開発環境でのご使用をおすすめします。
設定方法
TDV Studioの「構成」にて行います。
- TDV Studioを開く
- メニューバーの「管理」から「構成」を開く
- Server-> Configuration -> Debugging -> Debug Output Enabled for Data Sources の値を”真”に変更する
- 「適用」→「OK」をクリック
適用後、<TDVインストール先フォルダ>/logs/cs_server.log
に出力されるようになります。
出力例
下図を例にすると、テーブルA、BをJOINするTDVのビューに対するクエリーが、どのように最適化され、プッシュダウンされたかを確認することができます。
この例において、テーブルAに対して発行されたSQL文を以下のとおり確認できます。
DEBUG [DBChannel-10] 2022-03-24 13:11:00.285 +0900 AbstractDataSource - Successfully created com.compositesw.cdms.ds.postgresql.PostgreSqlConnection for transaction.id=500042 in data source=/shared/KB/A001/ds_orders
DEBUG [DBChannel-10] 2022-03-24 13:11:00.285 +0900 JdbcConnectionImpl - Fetching cursor for query: SELECT "orders"."orderid","orders"."purchaseordernumber","orders"."customerid","orders"."shipaddress","orders"."shipcity","orders"."shipstateorprovince","orders"."shippostalcode","orders"."shipcountry","orders"."shipphonenumber","orders"."shipdate","orders"."shippingmethodid","orders"."freightcharge","orders"."employeeid","orders"."orderdate","orders"."shipname" FROM "tutorial"."orders" "orders" WHERE "orders"."customerid" IN (3,4,6) ORDER BY "orders"."customerid"
補足情報
- TDVの発行するSQL文は実行計画でも確認できます。ログ出力を伴わないため、多くのケースでは適しています。
実行計画の確認方法は、以下を参照ください。- 公式ドキュメント「Working with the SQL Execution Plan」
- また、ビューのパフォーマンスチューニング全般については、以下を参照ください。
-
公式ドキュメント「Performance Tuning」
-