sql profiler показывает nhibernate работает запросы дважды? - PullRequest
0 голосов
/ 23 февраля 2009

Я провел некоторый анализ производительности приложения, над которым я работаю. Это веб-приложение (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, но не могу себе представить, что это нормальное поведение. Или я неправильно прочитал трассировку профиля (в таком случае, как мне следует интерпретировать вышеизложенное), или для этого есть веская причина?

Если вышесказанное так плохо, как я думаю, есть ли способ отключить это поведение?

Спасибо

1 Ответ

4 голосов
/ 23 февраля 2009

ваши запросы не запускаются дважды. Просто эти 2 события запускаются для одного и того же оператора.

...