Проблемы производительности в красноречивых запросах во время промежуточного программного обеспечения
У меня есть случай, когда один и тот же красноречивый запрос построителя выполняется дважды. Это специально, чтобы попытаться понять это. Обычно, когда запрос выполняется внутри промежуточного программного обеспечения маршрута, его выполнение занимает более 5000 мс. Однако в контроллере, где я добавил тот же запрос, он занимает всего 0,06 мс. Итак, мой вопрос: почему один и тот же запрос может занимать так много времени в промежуточном программном обеспечении, а не в контроллере?
1 ответ
Не понимаю, почему доступ к базе данных в промежуточном программном обеспечении был бы плохой практикой. Возьмите систему разрешений, например. Ваше промежуточное программное обеспечение должно убедиться, что вошедшему в систему пользователю разрешено просматривать текущую страницу. Нет способа сделать это без запроса к базе данных (кроме случаев, когда вы получите разрешения откуда-то еще)
Если этот запрос, вероятно, выполняется по многим запросам, вам следует убедиться, что вы правильно его оптимизировали и сократили время запроса до минимума.