非常に大規模な3層の.NET4.0Webアプリケーション(ASP.NET、WCF、SQL Server 2008 R2)があり、診断しようとしているパフォーマンスの問題がいくつかあります。ASP.NET層はSQLセッション状態プロバイダーを使用し、セッション状態はかなり広範囲に使用されます。
<sessionState mode="SQLServer" sqlConnectionString="..." cookieless="false" timeout="20"/>
セッションをデータベースにロードして保存するのにかかる時間を把握しようとしています。これは、SQLプロファイラーまたは他のデータベース手段を使用してその層の時間を測定することとは異なることに注意してください。ASP.NET層からの合計時間を測定したいと思います。 つまり、セッションオブジェクトのシリアル化/逆シリアル化、ワイヤ時間、およびSQLの保存/読み込み時間が含まれます。
私は(80年代初頭から)かなり経験豊富な開発者であり、今では何時間もWebをグーグルで検索しています-セッション状態のアプローチや一般的なパフォーマンスの概念などを対比する記事がたくさんありますが、この合計を実際に測定する方法については何も見つかりませんSQLセッション状態プロバイダーの時間。私は当初、HttpModuleを使用してイベントをフックし、ストップウォッチを使用することを考えましたが、これへのクリーンなパスはないようです。(私は、数パーセントまで かなり正確なアプローチに落ち着きます...)
どんなアイデア/提案も大歓迎です、ありがとう。