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