Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
aleksskay4
 Аватар для aleksskay4
17 / 17 / 6
Регистрация: 02.12.2015
Сообщений: 244
#1

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

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

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

Хранимая процедура C#
Хранимая процедура C#
C# DataGridView и хранимая процедура.
C# Shared ObjectContext в Entity Framework в Windows или веб-приложение?
Хранимая процедура с параметрами в C# C#
Запрос строки в Entity Framework C# .NET 4.x
SQL хранимая процедура C#
C# Программа инвентаризации: что выбрать - DataSet или Entity Framework
Хранимая процедура или запросы в классе? C#
Хранимая процедура C#
Entity Framework запрос на извлечение связанных данных C#
C# LINQ-запрос при отношении "многие-ко-многим" (Entity Framework)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Grossmeister
Модератор
2493 / 2161 / 313
Регистрация: 21.01.2011
Сообщений: 9,690
09.01.2017, 11:27     Хранимая процедура или запрос Entity Framework #2
Цитата Сообщение от aleksskay4 Посмотреть сообщение
кажется что процедуры могут быть намного эффективнее
Зависит от...
Если надо обработать данные на сервере (скажем, увеличить всем работникам зп), то конечно XP лучше. Если выдать какой-то отчет, то возможно тоже. Если нужно сделать одну выборку, которую потом, скажем, фильтровать или сортировать неоднократно на клиенте (если, разумеется, клиент позволяет кэшировать результаты запроса), то скорее всего запрос с клиента будет лучше.
Usaga
 Аватар для Usaga
1242 / 987 / 177
Регистрация: 21.01.2016
Сообщений: 3,561
Завершенные тесты: 2
11.01.2017, 08:17     Хранимая процедура или запрос Entity Framework #3
aleksskay4, в большинстве случаев запрос от Entity Framework будет лучше. Параметризованные запросы (а именно такие посылает EF) компилируются и кешируются на стороне СУБД. В этом плане они не отличаются от хранимых процедур. Хранимые процедуры позволяют использовать куда более сложную логику, чем можно сформировать с использованием EF. Если такое не требуется, то смотри только в сторону EF.

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

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

Но ориентироваться только на хранимки просто потому, что они якобы быстрее - не правильно.
aleksskay4
 Аватар для aleksskay4
17 / 17 / 6
Регистрация: 02.12.2015
Сообщений: 244
11.01.2017, 12:14  [ТС]     Хранимая процедура или запрос Entity Framework #4
Цитата Сообщение от Usaga Посмотреть сообщение
Но ориентироваться только на хранимки просто потому, что они якобы быстрее - не правильно.
Выходит что производительность одинакова у них?
Usaga
 Аватар для Usaga
1242 / 987 / 177
Регистрация: 21.01.2016
Сообщений: 3,561
Завершенные тесты: 2
11.01.2017, 12:18     Хранимая процедура или запрос Entity Framework #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
aleksskay4, да, хранимая процедура не имеет преимуществ в скорости исполнения перед параметризованными запросами. А иметь перед глазами LINQ-запрос удобнее.

Просто нужно понимать, что ты делаешь. А то можно такой запрос состряпать, что просто капут.
Yandex
Объявления
11.01.2017, 12:18     Хранимая процедура или запрос Entity Framework
Ответ Создать тему
Опции темы

Текущее время: 11:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru