EF, почему select запрос стал выполняется намного медленнее, чем обычно?
Добрый ))
Задача: На прошлой неделе стояла задача прикрутить серверную пагинацию к одному отчёту.
Используется:
MS SQL
.Net
Entity Framework
Web Api
Проблема: Запрос выборки данных выполняется очень медленно.
Решение: сначала проверил данный запрос в SQL Management и оказалось, что и тут он работает медленно а всё потому что в базе отсутствуют индексы. Добавил индексы и, о чудо, запрос выполнялся мгновенно и в SQL Management и в приложении.
Задача была решена, но, вернувшись сегодня на работу, решил перепроверить, и обнаружил, что в приложении пагинация опять работает медленно, а в SQL Management работает шустро.
Решил детально написать, т.к. думаю, что где-то я допустил ошибку. Что может быть?
string dquery = "select * from deficit_all_view a where data between @p0 and @p1";
var deficitRes = _Context.Database.SqlQuery(dquery, dateStart, dateEnd).Skip(start).Take(limit);
Новые детали: перестроил индекс и снова всё летает! может я индекс неправильно создал? В таблице было уже 300 000 строк когда я добавил кластеризованный индекс тип datetime