У нас есть очень большое трехуровневое веб-приложение .NET 4.0 (ASP.NET, WCF, SQL Server 2008 R2) с некоторыми проблемами производительности, которые я пытаюсь диагностировать. Уровень ASP.NET использует поставщика состояний сеанса SQL, и существует достаточно широкое использование состояния сеанса.Измерение производительности поставщика состояния сеанса ASP.NET SQL
<sessionState mode="SQLServer" sqlConnectionString="..." cookieless="false" timeout="20"/>
Я пытаюсь выяснить, сколько времени требуется для загрузки и сохранения сеанса в базе данных. Обратите внимание, что это отличается от использования профайлера SQL или другого средства базы данных для измерения времени на этом уровне; Я хочу измерить общее время, затраченное на уровень ASP.NET. I.e. который будет включать сериализацию/десериализацию объектов сеанса, время соединения и время сохранения SQL/время загрузки.
Я довольно опытный разработчик (с начала 80-х годов), и у меня есть Google для часов сейчас - есть тонны статей, контрастирующих подходам к сеансу сеанса и общим концепциям производительности и т. Д., Но я ничего не могу найти на как реально измерить это общее время для поставщика состояния сеанса SQL. Первоначально я думал об использовании HttpModule для перехвата событий и использования секундомера, но, похоже, для этого нет чистого пути. (Я бы согласился на подход, который разумно с точностью до нескольких процентов ...)
Любые идеи и предложения очень ценятся, спасибо.
ли вы пытаетесь добавить диагностический код с помощью 'Trace', а затем просто включить трассировку? Таким образом, вы можете очень тщательно диагностировать выбранные страницы. –
Куда вы добавили инструкции Trace? –
В вашем коде, как можно больше, чтобы вы могли анализировать точное время при попадании следов. –