Платформа Entity Framework с Sql Azure через net tcp низкая производительность - PullRequest
1 голос
/ 02 ноября 2011

Привет, ребята,

Так что у меня действительно большая проблема с производительностью. У меня есть приложение WPF, которое подключается к службе, которая работает внутри рабочей роли. Служба использует связывание по протоколу net tcp с полным дуплексом. Уровень доступа к данным находится в библиотеке, на которую я ссылаюсь в моем сервисе. Поэтому, когда мой сервис хочет получить данные, он использует методы из этой библиотеки. Эта библиотека использует EF 4.1, который сопоставлен с базой данных Sql Azure.

Проблема, с которой я сталкиваюсь, заключается в том, что запрос, такой как получение пользователя из базы данных, занимает где-то более 4 секунд. У меня также есть служба http (используемая приложением Silverlight), которая использует ту же библиотеку доступа к данным, тот же запрос там занимает 115 мс, что нормально.

Есть ли проблема с Entity Framework, когда я использую службу Net TCP? Я действительно не знаю, где проблема, потому что через http-сервис все запросы ведут себя нормально.

1 Ответ

1 голос
/ 03 ноября 2011

Возможно ли, что вы используете Lazy Loading вместо Eager loading с вашей сущностью? Ленивая загрузка через Интернет происходит намного медленнее, поскольку это приводит к гораздо большему количеству обращений к SQL Azure, что в данном случае было бы узким местом. Eager Загрузка просто получит все данные за один раз.

Ссылка: http://msdn.microsoft.com/en-us/library/bb896272.aspx

...