Тестирование linq-запроса EF6 в консольном приложении.Вот подробности:
Stopwatch sw = Stopwatch.StartNew();
Console.WriteLine(sw.ElapsedMilliseconds);
db.Database.Log = Console.Write;
db.Users.Where(x => x.GroupId == 1407).ToList(); //Approx 7000 rows
Console.WriteLine(sw.ElapsedMilliseconds);
Из вывода в окне консоли: В среднем выполнение запроса занимало 192 мс.Однако время открытия и закрытия соединения составляло около 7 секунд.Это также было отражено в ElapsedMilliseconds
log.
Более того, я выполнил тот же самый сгенерированный запрос в SSMS, и это заняло то же время, и результат был выполнен в среднем за 3 секунды.
УчитываяПриведенная выше информация у меня есть 2 вопроса:
- Если выполнение занимает всего около 200 мс, почему для выполнения данных требуется больше времени?(Я полагаю, это из-за подключения к Интернету и загрузки данных на стороне клиента. Хотя не уверен)
- Почему между SSMS и консольным приложением такая огромная разница во времени?