@den_5

Во сколько раз быстрее ADO.NET чем EF?

Во сколько раз быстрее ADO.NET чем EF, при каких размерах базы стоит использовать ADO.NET в место EF?
  • Вопрос задан
  • 660 просмотров
Пригласить эксперта
Ответы на вопрос 2
yarosroman
@yarosroman
C# the best
www.entityframeworktutorial.net/what-is-entityfram...

там есть такая фраза
Entity framework is an Object/Relational Mapping (O/RM) framework. It is an enhancement to ADO.NET that gives developers an automated mechanism for accessing & storing the data in the database.

В общем смысл всего этого, EF это расширение ADO.Net для доступа к БД.

А если совсем конкретно, то быстрее всего непосредственные SQL запросы к БД. Новый EF7 фактически переписан с нуля, и очень оптимизирован, в скорости, составлении запросов к БД. Только за вами выбор, сделать кол проще, безопаснее (использование EF исключает такую вещь как SQL Injection) или чуть чуть быстрее(а может и поболее, у EF6 бывали проблемы с составлением сложных выборок и запросы выполнялись долго).
Ответ написан
Комментировать
@dmitryKovalskiy
программист средней руки
Если вы хотите услышать ответ в форме - "в 2", "в 5", "в 1,5" то вынужден вас разочаровать. EF это витиеватая сложная обертка над ADO.NET сделанная с единственной целью - сделать вашу жизнь чуть попроще если вы плохо знакомы с техникой работы с базой данных. Технически она генерирует SQL запрос на основании ваших писулек и исполняет его на базе теми же классами и методами ADO.NET что и вы. Если вы хорошо пишете SQL-скрипты то разница в производительности будет только в обертках. Если вы хреново пишете скрипты и лепите курсоры, лишние JOIN-ы и еще ворох странных инструкций - то лучше возьмите EF. Если вы хреново пишете и серверный код, где сначала тащите всю таблицу данных к себе на сервер приложения, там ее фильтруете и сортируете, а затем отрезаете нужный кусочек - то вас и EF не спасет. В таком случае сгенерится фантастически неэффективный запрос с, возможно вынужденными, доп. запросами и при этом еще и само приложение получит задачи, которые ему даром не нужны. Нет хорошего ответа вроде "при миллионе записей пиши руками, а если меньше EF". Надо глобально смотреть на архитектуру приложения и взаимодействие с данными.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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