Symfoware ServerのSQL_SNAPとSQL_TRACEによるSQL実行時間の差について

SQL実行時間を調査するために、SQL_SNAPとSQL_TRACEを取得しました。しかし、同じSQL文なのに実行時間に差があります。これはなぜですか?
SQL_TRACEのとSQL_SNAPでは所要時間を集計している処理の範囲が異なるためです。
アプリケーションからSQL文を実行すると、以下のように処理が行われます。

  1. アプリケーションからSymfoware Serverに要求が送信される。

  2. Symfoware ServerがSQLの処理を行う。

  3. Symfoware Serverからアプリケーションに結果が送信される。


SQL_SNAPで実行時間として集計される範囲は、上記の1.2.3.のすべてです。一方、SQL_TRACEで実行時間として集計される範囲は、上記の2.だけです。
このため、同じSQL文でもSQL_TRACEとSQL_SNAPでは、処理時間が異なる結果になります。

また、SQL文の実行時に以下のような影響を受けると、同一のSQL文であっても処理時間が異なる場合があります。

  • 排他待ちが発生していた場合

  • 対象のデータが共用バッファになく、ディスクI/O を必要とした場合

  • データ件数やアクセス件数が異なる場合

  • 最適化情報などが変わり、異なるアクセスプランで動作した場合

  • サーバが高負荷状態であった場合

製品・サービス区分 Symfoware
製品・サービス情報
対象製品 Symfoware Server (Native Interface)
プラットフォーム Windows, Solaris, Linux
アンサー種別 技術サポート
このページの先頭へ