作業中のアプリケーションでパフォーマンス分析を行っています。このアプリケーションは、MSSQL Server(2005)で古いバージョンのNHibernate(1.0)を使用するWebベース(asp.net)です。
アプリケーションに対してプロファイラーを実行すると、オブジェクトを2回クエリしているように見えます。1回は直接クエリとして、もう1回はsp_executesqlでラップされています。例えば:
SELECT col1、col2 FROM TABLE exec sp_executesql N'SELECT col1、col2 FROM TABLE'
プロファイラー内の統計を見ると、それらは別個のイベントであることがわかります(sp_executesqlの呼び出しがイベント10-RPC:Completedとして記録されているのに対し、selectはイベント45-SP:StmtCompletedとして記録されています)。
私はこれまでNHibernateをあまり使用していませんでしたが、これが正常な動作であるとは想像できません。プロファイルトレースを読み間違えたのでしょうか(この場合、上記をどのように解釈する必要がありますか)、またはこれには正当な理由がありますか?
上記が私が思うほど悪い場合、この動作をオフにする方法はありますか?
ありがとう