Re[9]: EntityFramework - тормоз
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 09.04.15 23:22
Оценка: +1
Здравствуйте, rFLY, Вы писали:

FLY>Здравствуйте, gandjustas, Вы писали:


G>>select * запрашивает метаданные, что заметно влияет на время. Но проблема не в этом, а в том, что ты тянешь поля, которые не используешь. Это повышает нагрузку на базу, сеть, приложение, и, самое главное, не позволяет построить покрывающий индекс.

FLY>Если нужно одно или пару полей понятно что не будешь использовать *, а вот если нужно тянуть все поля или почти все, например из 20 нужно 16, что все перечислять?
Конечно. И Linq кстати в этом прекрасно помогает.


G>>У тебя получаются разные запросы по разным комбинациям параметров и ты можешь построить разные индексы, которые разные ускоряют разные запросы.

FLY>Если я правильно понимаю, в таком случае каждый раз когда запрос отправляется на сервер будет строится план, верно? Все равно лучше чем уже имеющийся нестабильный?
Нет, план строится только при первом запросе, потом кешируется, соответственно планов у тебя будет как 2^n параметров, что в принципе немного. И это в разы лучше, чем иметь нестабильный план, который, по факту, хреново подходит для всех запросов, кроме изначальной комбинации параметров.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.