Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# и базы данных, ADO.NET

Войти
Регистрация
Восстановить пароль
 
aleksskay4
31 / 31 / 13
Регистрация: 02.12.2015
Сообщений: 376
#1

Хранимая процедура или запрос Entity Framework - C#

09.01.2017, 11:17. Просмотров 262. Ответов 4
Метки нет (Все метки)

Возможно это уже обсуждалось и все таки. Допустим есть крупный проект. И соответственно приложение часто обращается к базе данных, получает , обрабатывает данные. Вот возникает вопрос, что будет эффективнее использовать хранимую процедура или запрос Entity Framework? Так как процедура бывает скомпилированной на сервере, кажется что процедуры могут быть намного эффективнее. И в итоге, если есть крупный ну или средний проект, что использовать Entity Framework или хранимые процедуры?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2017, 11:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Хранимая процедура или запрос Entity Framework (C#):

В чем разница между Entity Framework и Entity Framework Core? - C#
В чем разница (если она есть) между entity framework и entity framework core?

.NET 4.x Запрос строки в Entity Framework - C#
Добрый день, форумчане! Подскажите пожалуйста, как средствами фреймворка можно получить запись в таблице по, предположим, Id? Я не...

Entity Framework. Запрос с вычисляемой колонкой - C#
Есть запрос вида: select *, DATEDIFF("YEAR", DateOfBirth, GETDATE()) as Diff from Runner Как мне провернуть на...

Entity Framework запрос с Include по условию - C#
Всем привет. Помогите, не могу составить простейший запрос. Есть сущность продукт и категории. Один продукт может находится сразу во...

Хранимая процедура или запросы в классе? - C#
Доброго времени суток всем! Хотел бы узнать мнение опытных программеров, у меня есть два варианта: 1) реализовать все запросы в отдельном...

Entity Framework запрос с Include or Collection null - C#
Всем привет. Как переписать такой запрос на entity framework с Include и навигационными полями? select * from pic p left join...

4
Grossmeister
Модератор
3207 / 2303 / 365
Регистрация: 21.01.2011
Сообщений: 10,223
09.01.2017, 11:27 #2
Цитата Сообщение от aleksskay4 Посмотреть сообщение
кажется что процедуры могут быть намного эффективнее
Зависит от...
Если надо обработать данные на сервере (скажем, увеличить всем работникам зп), то конечно XP лучше. Если выдать какой-то отчет, то возможно тоже. Если нужно сделать одну выборку, которую потом, скажем, фильтровать или сортировать неоднократно на клиенте (если, разумеется, клиент позволяет кэшировать результаты запроса), то скорее всего запрос с клиента будет лучше.
0
Usaga
Эксперт .NET
2330 / 2003 / 373
Регистрация: 21.01.2016
Сообщений: 7,753
Завершенные тесты: 2
11.01.2017, 08:17 #3
aleksskay4, в большинстве случаев запрос от Entity Framework будет лучше. Параметризованные запросы (а именно такие посылает EF) компилируются и кешируются на стороне СУБД. В этом плане они не отличаются от хранимых процедур. Хранимые процедуры позволяют использовать куда более сложную логику, чем можно сформировать с использованием EF. Если такое не требуется, то смотри только в сторону EF.

Следует заметить, что EF сам по себе ни разу не бесплатен в плане производительности. Он крайне удобен и экономит кучу человеко-часов на разработку. Но, прим этом, требует глубокого понимания принципов его работы. Без этого можно столкнуться с кучей проблем производительности.

Но и отказываться от EF тоже не стоит. Даже средний по своим размерам проект не сможет обойтись без O/RM. Это не обязательно должна быть именно EF. Это может быть какой-то самопал, или что-то типа NPoco или Dapper.

Но ориентироваться только на хранимки просто потому, что они якобы быстрее - не правильно.
0
aleksskay4
31 / 31 / 13
Регистрация: 02.12.2015
Сообщений: 376
11.01.2017, 12:14  [ТС] #4
Цитата Сообщение от Usaga Посмотреть сообщение
Но ориентироваться только на хранимки просто потому, что они якобы быстрее - не правильно.
Выходит что производительность одинакова у них?
0
Usaga
Эксперт .NET
2330 / 2003 / 373
Регистрация: 21.01.2016
Сообщений: 7,753
Завершенные тесты: 2
11.01.2017, 12:18 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
aleksskay4, да, хранимая процедура не имеет преимуществ в скорости исполнения перед параметризованными запросами. А иметь перед глазами LINQ-запрос удобнее.

Просто нужно понимать, что ты делаешь. А то можно такой запрос состряпать, что просто капут.
1
11.01.2017, 12:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2017, 12:18
Привет! Вот еще темы с ответами:

Entity Framework запрос на извлечение связанных данных - C#
Здравствуйте, форумчане! Суть такая: не получается написать запрос на извлечение данных. Есть таблицы Заказы, Курьеры, Клиенты. ...

Shared ObjectContext в Entity Framework в Windows или веб-приложение? - C#
это хорошая практика использовать Shared ObjectContext с Entity Framework в Windows или веб-приложение?

Программа инвентаризации: что выбрать - DataSet или Entity Framework - C#
Приветствую, уважаемые. Возникла необходимость(у начальства конечно же) в программе инвентаризации и учета приборов для собственных нужд....

Entity Framework. Удаление entity без удаления связей - C#
Вечер добрый. Есть модель Coder First. Каскадное удаление запрещено. Удаление произвожу так: try { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.