LINQ к SQL по сравнению с ADO.NET - который быстрее?

Так как LINQ к SQL в основном является слоем сверху ADO.NET, требуется некоторый перевод. Это означает, что использование ADO.NET непосредственно быстрее, чем LINQ? Или действительно ли разница является столь небольшой, что это не важно?

5
задан Herter 19 January 2010 в 10:26
поделиться

4 ответа

Это означает, что Ado.net быстрее. Он также дает вам кучи большего количества свободы оптимизации ваших запросов SQL (ну при техническом режиме, вы можете использовать LINQ для SQL только с сохраненными процедурами, но вы пропустите на всей точке).

Дело в том, что если вы действительно действительно действительно необходимо оптимизировать для лучшей производительности, то никто не рекомендует использовать или / м. Есть кучи соображений с или / m: s, производительность - мудрые. Но многие сайты на самом деле не нужно оптимизировать , что много для производительности, в значительной степени, так же, как мы можем позволить себе программирование в .NET, а не в ассемблере, хотя это тот же вид накладной Для записи кода на низком уровне языка.

Точка использования LINQ к SQL или Nibernate или действительно любые другие или / м в том, что (как с аналогией .NET) это даст вам много удобства, и это спасет вас много Разработка времени и внесение рефакторинга и других более поздних изменений значительно более простых задач.

26
ответ дан 18 December 2019 в 05:24
поделиться

Я исправил эту ошибку, изменив следующий тэг include как версию одного тэга.

Прежде:

<jsp:include page="..."></jsp:include>

Я изменился так,

<jsp:include page="..."/>

Теперь я не получил этот тип исключения.

-121--3464961-

При выполнении выполняется несколько медленнее. Однако Linq - SQL экономит время разработчика, что является основным преимуществом IMHO.

Доброта,

Дэн

-121--4537415-

Технически, да, есть некоторые издержки, и Linq2Sql иногда могут генерировать некоторые менее оптимальные SQL, но, если вы не выполняете высокопроизводительную или высокопроизводительную работу, вы, вероятно, вряд ли заметите это.

Мой совет - выбрать технологию DA, которая больше всего соответствует вашим требованиям, и идти с ней. Помните преимущества таких вещей, как Linq2SQL или EF, это уменьшение времени разработчика, затрачиваемого на написание повторяющихся уровней DA, и сокращение кода (так что теоретически, возможно, уменьшение ошибок и меньшее обслуживание - хотя это спорно). Затем профиль для производительности позже, и если вы обнаружите бутылочное горлышко, вы можете начать оптимизацию конкретных запросов, и при крайней необходимости очень важные запросы, которые вызывают большие бутылочные горлышки, могут быть преобразованы в простой ado.net

4
ответ дан 18 December 2019 в 05:24
поделиться

Это правда, что LINQ к SQL является слоем поверх ADO.NET. Но так же и другие варианты, которые позволяют удерживать результаты в памяти. Если ваше намерение действовать на данных сразу после поиска, вам лучше работать с DataReader Ado.net в цикле для лучшей производительности. Однако, если вам нужно сделать дальнейшую обработку данных, вам нужно будет удерживать в нем памяти, используя какую-то переменную, такую ​​как Linq для SQL-объекта или DataTable. Обе эти переменные памяти в основном генерируются так же под крышками. Учитывая этот факт, я бы сказал, что скорость которого каждый вариант доступен в памяти, не так, как импорт, как вы планируете работать с данными.

2
ответ дан 18 December 2019 в 05:24
поделиться

в исполнении его фракционировочно медленнее. Тем не менее, LINQ для SQL экономит время разработчика, которое является основной выгодой, IMHO.

Доброта,

Дэн

5
ответ дан 18 December 2019 в 05:24
поделиться
Другие вопросы по тегам:

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