У меня есть некоторый код, который извлекает записи из базы данных, и затем я делаю простое сравнение, чтобы проверить, соответствуют ли записи конкретному модулю и ответу, а затем использую количество и отображение статистики.К сожалению, это очень медленно, когда он достигает чего-то большего, чем 1000 записей в базе данных.
В nHibernate я включил отложенную загрузку, которая немного помогла во время начального запроса, но когда он добирается до этой части, где онуглубиться немного глубже это сильно замедляет.Я предполагаю, что проблема в том, что он извлекает данные из множества различных таблиц для получения этой статистики.
Из некоторых исследований кажется, что я мог бы ускорить это, написав операторы linq вместо использования циклов foreach, ноУ меня было несколько попыток, и я не очень далеко.Мне было интересно, если кто-нибудь может помочь направить меня в правильном направлении.Или к хорошему учебнику или книге по Linq, так как я мало что знаю по теме
Также я видел, что в подобных случаях люди рекомендовали помещать работу на сервер sql, чтобы заполнить другую таблицу, которая используется для поиска, но я быЯ хотел бы избежать этого, если это возможно.
Вот код.
int modules = 0;
var sessionsWithPullHits = from session in m_sessions where session.PullHits.Count > 0 select session;
foreach (ISession<PullHitRecord, PushHitRecord> session in sessionsWithPullHits)
{
foreach (var pullHit in session.PullHits)
if ((pullHit.Module == _Module) && (pullHit.Response == _response))
{
modules++;
}
}
Большое спасибо за любую помощь, которую кто-то может оказать.