Разница в производительности при выполнении представления с помощью NHibernate

У меня есть представление SqlServer 2012 с примерно 10 внутренними объединениями, работающими в таблице с>2 миллионами строк.

1 - Выполнение этого представления с NH 4.1 (с использованием Query with Linq) занимает ~20 секунд

2 - Выполнение этого представления с NH 4.1 (используя CreateSQLQuery с sql, сгенерированным запросом выше) занимает ~ 2 секунды

3 - Выполнение этого представления с помощью Sql Manager (с использованием sql, сгенерированного запросом выше) занимает ~ 2 секунды

Любая идея, как тот же SQL (захваченный профилем NHibernate) имеет столь резкое различие в производительности между 1 и 2 (оба используют NHibernate)?

Где clausule от sql, сгенерированного NH:

from myView myView_c0_ 
where (myView_c0_.Param1 like ('%'+'123456' /* @p0 */+'%')) and
   myView_c0_.Data >='2017-04-01T00:00:00' /* @p1 */        
     order by myView_c0_.Data asc,
     myView_c0_.MyProp asc OFFSET 0 /* @p3 */ ROWS FETCH FIRST 11 /* @p4 */ ROWS ONLY

0 ответов

Другие вопросы по тегам