Entity Framework запрашивает скорость - PullRequest
6 голосов
/ 28 марта 2011

Недавно я начал изучать Entity Framework.

Первый вопрос, который у меня возникает:

Когда мы хотим использовать LINQ для извлечения данных в EF, каждый запрос выглядит так:

var a = from p in contacts select p.name ;

будет преобразовано в команды SQL, например:

select name from contacts
  1. повторяется ли это преобразование каждый раз, когда мы запрашиваем?
  2. Я слышал, что хранимые процедурыкэшируются в базе данных, происходит ли это событие в запросах LINQ в Entity Framework?

И, наконец, мой вопрос ясен?

Ответы [ 2 ]

7 голосов
/ 28 марта 2011

Я думаю, что запрос linq конвертируется каждый раз, когда вы хотите его выполнить.Для повышения производительности вы можете использовать скомпилированные запросы .

5 голосов
/ 28 марта 2011

Производятся всевозможные оптимизации, как в кэшировании выражений linq, так и в том, что сервер SQL выбирает для кэширования. Единственный способ - это измерить вашу производительность и потребление памяти

Чтобы увидеть, какой SQL созданВы можете использовать http://efprof.com/, который я нашел довольно хорошим.Вы можете получить немного этой информации через профилировщик SQL, это просто намного больше работы.

...