Так как LINQ к SQL в основном является слоем сверху ADO.NET, требуется некоторый перевод. Это означает, что использование ADO.NET непосредственно быстрее, чем LINQ? Или действительно ли разница является столь небольшой, что это не важно?
Это означает, что Ado.net быстрее. Он также дает вам кучи большего количества свободы оптимизации ваших запросов SQL (ну при техническом режиме, вы можете использовать LINQ для SQL только с сохраненными процедурами, но вы пропустите на всей точке).
Дело в том, что если вы действительно действительно действительно необходимо оптимизировать для лучшей производительности, то никто не рекомендует использовать или / м. Есть кучи соображений с или / m: s, производительность - мудрые. Но многие сайты на самом деле не нужно оптимизировать , что много для производительности, в значительной степени, так же, как мы можем позволить себе программирование в .NET, а не в ассемблере, хотя это тот же вид накладной Для записи кода на низком уровне языка.
Точка использования LINQ к SQL или Nibernate или действительно любые другие или / м в том, что (как с аналогией .NET) это даст вам много удобства, и это спасет вас много Разработка времени и внесение рефакторинга и других более поздних изменений значительно более простых задач.
Я исправил эту ошибку, изменив следующий тэг include как версию одного тэга.
Прежде:
<jsp:include page="..."></jsp:include>
Я изменился так,
<jsp:include page="..."/>
Теперь я не получил этот тип исключения.
-121--3464961-При выполнении выполняется несколько медленнее. Однако Linq - SQL экономит время разработчика, что является основным преимуществом IMHO.
Доброта,
Дэн
-121--4537415-Технически, да, есть некоторые издержки, и Linq2Sql иногда могут генерировать некоторые менее оптимальные SQL, но, если вы не выполняете высокопроизводительную или высокопроизводительную работу, вы, вероятно, вряд ли заметите это.
Мой совет - выбрать технологию DA, которая больше всего соответствует вашим требованиям, и идти с ней. Помните преимущества таких вещей, как Linq2SQL или EF, это уменьшение времени разработчика, затрачиваемого на написание повторяющихся уровней DA, и сокращение кода (так что теоретически, возможно, уменьшение ошибок и меньшее обслуживание - хотя это спорно). Затем профиль для производительности позже, и если вы обнаружите бутылочное горлышко, вы можете начать оптимизацию конкретных запросов, и при крайней необходимости очень важные запросы, которые вызывают большие бутылочные горлышки, могут быть преобразованы в простой ado.net
Это правда, что LINQ к SQL является слоем поверх ADO.NET. Но так же и другие варианты, которые позволяют удерживать результаты в памяти. Если ваше намерение действовать на данных сразу после поиска, вам лучше работать с DataReader Ado.net в цикле для лучшей производительности. Однако, если вам нужно сделать дальнейшую обработку данных, вам нужно будет удерживать в нем памяти, используя какую-то переменную, такую как Linq для SQL-объекта или DataTable. Обе эти переменные памяти в основном генерируются так же под крышками. Учитывая этот факт, я бы сказал, что скорость которого каждый вариант доступен в памяти, не так, как импорт, как вы планируете работать с данными.
в исполнении его фракционировочно медленнее. Тем не менее, LINQ для SQL экономит время разработчика, которое является основной выгодой, IMHO.
Доброта,
Дэн