Я проводил анализ производительности приложения, над которым работаю. Это веб-приложение (asp.net) с использованием старой версии NHibernate (1.0) на сервере MSSQL (2005).
Запуск профилировщика для приложения кажется немного странным, поскольку мы, кажется, запрашиваем объекты дважды, один раз как прямой запрос и один раз завернутый в sp_executesql. Например:
SELECT col1, col2 FROM TABLE exec sp_executesql N'SELECT col1, col2 FROM TABLE'
Глядя на статистику в профилировщике, я вижу, что это разные события (выбор записывается как событие 45 - SP: StmtCompleted, в то время как вызов sp_executesql записывается как событие 10 - RPC: Completed).
Я не слишком много работал с NHibernate до этого, но не могу представить, что это нормальное поведение. Либо я неправильно читаю трассировку профиля (и в этом случае, как мне интерпретировать вышеизложенное), либо для этого есть веская причина?
Если все вышеперечисленное так плохо, как я думаю, есть ли способ отключить это поведение?
Спасибо