Я использую метод NHibernate Session.Query () для получения данных из базы данных sql.Недавно я заметил, что запрос занимает более 1000 мс!Используя профилировщик, я обнаружил, что это время в основном тратится в NHibernate.Linq.DefaultQueryProvider.PrepareQuery () (70%), а реальный запрос занимает всего 300 мс.Запрос выглядит следующим образом:
var q = session.Query<Answer>().
Where(a => a.User.IsExpert);
И в результате sql выглядит так:
select answer0_.ID as ID0_,
answer0_.TotalAnswer as TotalAns2_0_,
answer0_.Rating0 as Rating3_0_,
answer0_.Rating1 as Rating4_0_,
answer0_.Rating2 as Rating5_0_,
answer0_.Rating3 as Rating6_0_,
answer0_.caseID as caseID0_,
answer0_.userid as userid0_
from Answer answer0_
inner join Users user1_
on answer0_.userid = user1_.ID
where user1_.IsExpert = 1
Есть идеи, как ускорить вызов PrepareQuery?