@Misuta

Как оптимизировать запрос к базе данных?

public void CompletRequestActionItemExecutionTasks()
    {
      if (_obj.AppealCloseddev == true)
      {
        var assignments = ActionItemExecutionAssignments.GetAll(a => a.Created>= _obj.Created).ToList();
        
        foreach (var item in assignments)
        {
          var document = item.DocumentsGroup.OfficialDocuments.FirstOrDefault();
          
          if (document != null && document == _obj)
            item.Complete(Sungero.RecordManagement.ActionItemExecutionAssignment.Result.Done);
        }
        
      }
    }


Суть функции: функция смотрит, какие задания связаны с документом _obj, и завершает их. Чтобы определить, принадлежит ли задание данному документу, нужно посмотреть, какой документ лежит во вложение в задании(по другому определить это никак нельзя). Из-за того, что заданий очень много, функция падает по ошибке: Сервер прекратил обработку запроса по таймауту.

Как можно оптимизировать данную функцию? И как вообще обычно поступают в таких случаях?
Время таймаута увеличивать не хочется, оно и так 60 сек., да и количество заданий в базе растет каждый день.
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы