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

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

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

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

09.01.2017, 11:17. Просмотров 193. Ответов 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
Модератор
3102 / 2194 / 325
Регистрация: 21.01.2011
Сообщений: 9,852
09.01.2017, 11:27     Хранимая процедура или запрос Entity Framework #2
Цитата Сообщение от aleksskay4 Посмотреть сообщение
кажется что процедуры могут быть намного эффективнее
Зависит от...
Если надо обработать данные на сервере (скажем, увеличить всем работникам зп), то конечно XP лучше. Если выдать какой-то отчет, то возможно тоже. Если нужно сделать одну выборку, которую потом, скажем, фильтровать или сортировать неоднократно на клиенте (если, разумеется, клиент позволяет кэшировать результаты запроса), то скорее всего запрос с клиента будет лучше.
Usaga
1513 / 1259 / 220
Регистрация: 21.01.2016
Сообщений: 4,517
Завершенные тесты: 2
11.01.2017, 08:17     Хранимая процедура или запрос Entity Framework #3
aleksskay4, в большинстве случаев запрос от Entity Framework будет лучше. Параметризованные запросы (а именно такие посылает EF) компилируются и кешируются на стороне СУБД. В этом плане они не отличаются от хранимых процедур. Хранимые процедуры позволяют использовать куда более сложную логику, чем можно сформировать с использованием EF. Если такое не требуется, то смотри только в сторону EF.

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

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

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

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

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