Entity Framework Checklist для повышения производительности - PullRequest
4 голосов
/ 05 февраля 2012

Я занимаюсь разработкой проекта с использованием Entity Framework 4. Имея около 50 сущностей, в основном все таблицы связаны с пользовательской таблицей.Поиск пользователя немного больше времени, чтобы вернуть результаты.В пользовательской таблице я удалил свойства навигации, даже если это занимает больше времени.В основном в Интернете приведены рекомендации по производительности для любого конкретного сценария / проблемы.Существует ли какой-либо общий контрольный список для улучшения производительности работы Entity Frame?

Поиск пользователя в динамическом режиме, как следует

 var searchPredication = (from user in entities.Users
 where ((searchKeyword == "") || (searchField != "" && searchKeyword != "" &&
 searchField == "BarCode" && user.BarCode == searchKeyword)||
(searchField == "LastName" && user.LastName == searchKeyword)  ||
(searchField == "FirstName" && user.FirstName == searchKeyword))) && !user.IsDeleted 
select user).FirstOrDefault();

А также мне нужно дать дополнительную информацию об общем управлении производительностью вEF.

1 Ответ

3 голосов
/ 05 февраля 2012

На самом деле нет никакого «контрольного списка», но вот несколько советов, чтобы убедиться, что ваши сайты работают хорошо:

  • Всегда храните большой объем данных в вашей базе данных разработчиков, если вы внедрите миллионы фиктивных строк, это будет усугублять проблемы с производительностью, пока вы еще находитесь в разработке.
  • Используйте тесты производительности, если у нас большой сайт, мы настраиваем по крайней мере тест на страницу, чтобы проверить время загрузки. Это позволяет вам выбирать внешние страницы.
  • Избегайте действительно сложных операторов LINQ, они обычно (но не всегда) ошибочны, в основном вы можете просто добиться чего-то.
  • Перечислите ваш набор, как только у вас будут правильные данные. Это позволяет избежать случайного усложнения запроса в вашем коде дисплея. (т.е. используйте ToList или ToArray)
  • Используйте EFProfiler или SQLProfiler для сложных запросов, чтобы проверить, что SQL кажется разумным.

Надеюсь, это поможет, в целом исполнение - больше искусство, чем наука. Это немного скользящая шкала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...