2015-07-02 3 views
0

Я разрабатываю новый набор проектов, включая службу WCF, которая должна обрабатывать до 50 запросов в минуту.Является ли Entity Framework достаточно быстрым для получения данных

Это будет стек Microsoft, использующий .NET 4.0 и C#.

Каждый запрос будет проверять данные и, если он пройдет, получить данные через сохраненный процесс на сервере SQL Server 2008.

Ответ должен быть возвращен в течение 5 секунд после запроса, если это возможно.

И запрос, и ответ XML составляют менее 3K каждый и довольно просты.

Я планирую настроить балансировщик нагрузки для обработки запросов, но мне нужно знать, будет ли EF достаточно быстрым, чтобы снять это или мне нужно пойти с чем-то другим.

Обратите внимание, что все это не построено, поэтому у меня есть свобода построить что-то с нуля.

+1

Если вы беспокоитесь о производительности, возможно, вам стоит рассмотреть возможность поиска XML-сериализатора в качестве узкого места ... и если вы вызываете хранимую процедуру, просто используйте Dapper. Вы получаете сериализацию строго типизированного объекта и всю скорость, с которой вы можете справиться. –

+1

Да, EF очень быстрый, но если этого будет достаточно, это зависит от вашего сценария, но не волнуйтесь, EF отлично работает. Для справки, у меня есть приложение, которое выполняет более 100 транзакций в секунду с EF, но, конечно же, база данных, хранимые процедуры и запросы настроены, поэтому я думаю, что база данных является очень важной проблемой, о которой нужно заботиться. –

ответ

0

Entity Framework относительно быстр (Performance Considerations for Entity Framework 4, 5, and 6), однако если ВСЕ, что вы делаете, вызывает хранимые процедуры, Dapper или какой-либо другой MICRO-ORM будет намного быстрее. Если вам нужно выполнять более сложные задачи O/RM, такие как запросы LINQ к базе данных, LINQ to SQL обычно быстрее, чем EF6, но EF6 поддерживает больше концепций, таких как код-первый, который никогда не должен был выполнять LINQ to SQL.

Я не думаю, что ваш O/RM будет вашим узким местом, независимо от того, как вы это делаете: скорее, хранимая процедура (или отсутствие индексов, если вы отправляете маршрут запроса O/RM и не выполняете выяснить, какие индексы вам нужны заранее) будет вашим узким местом производительности.

+0

Спасибо за быстрый ответ. И благодаря Дэвиду и Рикардо, которые тоже прокомментировали мой вопрос. –

Смежные вопросы