Линк в Sql - Sql Поколение - PullRequest
       1

Линк в Sql - Sql Поколение

0 голосов
/ 10 февраля 2011

Недавно мой коллега заявил, что SQL, сгенерированный из LINQ, варьируется в зависимости от статистики таблицы.

Я знаю, что сгенерированный SQL оптимизируется в зависимости от версий SQL Server (Sql 2000 против SQl 2008), используя новые операторы, такие как ROW_NUMBER, если поддерживается.

Может ли кто-нибудь подтвердить это или как это подтвердить?

Ответы [ 3 ]

3 голосов
/ 10 февраля 2011

"Недавно мой коллега заявил, что SQL, сгенерированный из LINQ, варьируется в зависимости от статистики таблицы." - Это не правда. Для создания SQL потребуются обходные пути к БД.

Планы запросов создаются SQL Server с использованием статистики после отправки запроса на SQL Server.

SQL, генерируемый LINQ, основан на правилах.

0 голосов
/ 10 февраля 2011

На самом деле, Linq to SQL будет вызывать сохраненный процесс, в котором вы можете использовать ROW_NUMBER, но только для определенных операций, таких как Skip и Take.

Вот сообщение от мастера:

http://weblogs.asp.net/scottgu/archive/2006/01/07/434787.aspx

и

http://weblogs.asp.net/scottgu/archive/2006/01/01/434314.aspx

0 голосов
/ 10 февраля 2011

Я сомневаюсь в этом. План запроса, сгенерированный SQL Server, может отличаться, но я действительно сомневаюсь в синтаксисе SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...