Сгенерированные запросы linq кэшируются эффективно SQL Server 2008?

Сгенерированные запросы linq кэшируются эффективно SQL Server 2008?

или лучше использовать хранимые процедуры с linq или что относительно представления и затем использования скомпилированных запросов linq... мнения?

удачи

акцент здесь идет "эффективно", и или является этим лучше....

т.е. представления кэшируются хорошо SQL-сервером, и затем использующий linq на представлении....

6
задан alex 6 February 2010 в 15:11
поделиться

3 ответа

Вдобавок к уже полученным ответам, согласно Дэмиену Гварду, в поставщиках LINQ to SQL и EF LINQ есть сбой, из-за которого не удается последовательно установить переменную длину для запросов, включающих строковые параметры.

http://damieng.com/blog/2009/12/13/sql-server-query-plan-cache

По-видимому, это исправлено в .NET 4.0.

В прошлом я писал хранимые процедуры вместо запросов LINQ, в основном для сложных запросов, подобных отчетам, а не для простого CRUD, но только после профилирования моего приложения.

2
ответ дан 17 December 2019 в 07:04
поделиться

L2S просто передает запросы в SQL Server 2008. Таким образом, они будут кэшироваться или не кэшироваться, как любой другой запрос, отправленный любым другим процессом. . Тот факт, что запрос Linq компилируется, не влияет на то, как SQL Server обрабатывает запрос.

1
ответ дан 17 December 2019 в 07:04
поделиться

Запросы, которые генерирует LINQ, являются обычными SQL-запросами, такими как ваши собственные SQL-запросы, созданные вручную, и они подчиняются тем же правилам: если текст запроса идентичен (до последней запятой и пробелов), то текст запроса ранее, скорее всего, его план выполнения запроса мог быть кэширован и, следовательно, его можно было повторно использовать.

Дело в том, что текст запроса должен быть абсолютно идентичным - если хотя бы один пробел отличается, SQL Server считает его новым запросом и, таким образом, проходит полный процесс синтаксического анализа, анализа, поиск плана запроса и его выполнение.

Но в основном да - запросы, отправленные LINQ, будут кэшироваться и повторно использоваться - если они соответствуют этим критериям!

1
ответ дан 17 December 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: