Entity framework 改进性能的实体框架检查表

Entity framework 改进性能的实体框架检查表,entity-framework,entity-framework-4.1,Entity Framework,Entity Framework 4.1,我正在使用EntityFramework4开发一个项目。大约有50个实体,大多数表都与用户表有关系。搜索用户需要更多的时间来返回结果。在用户表中,我删除了导航属性,即使这需要更多的时间。 主要是在web上,针对任何特定场景/问题提供了性能指南。是否有任何可用于改进实体框架性能的通用检查表 动态搜索用户,如下所示 var searchPredication = (from user in entities.Users where ((searchKeyword == "") || (searc

我正在使用EntityFramework4开发一个项目。大约有50个实体,大多数表都与用户表有关系。搜索用户需要更多的时间来返回结果。在用户表中,我删除了导航属性,即使这需要更多的时间。 主要是在web上,针对任何特定场景/问题提供了性能指南。是否有任何可用于改进实体框架性能的通用检查表

动态搜索用户,如下所示

 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中常见绩效管理的更多信息。

实际上没有任何“检查表”,但这里有一些确保您的网站表现良好的提示:

  • 在dev数据库中始终保留大量数据,如果您注入数百万虚拟行,那么在您仍处于开发阶段时,它将夸大性能问题
  • 使用性能测试,如果我们有一个高容量的站点,我们至少在每个页面上设置一个测试来检查加载时间。这使您可以选择外围页面
  • 避免使用非常复杂的LINQ语句,它们通常(但不总是)是错误的,大多数情况下,您可以简单地完成任务
  • 一旦获得正确的数据,就立即枚举集合。这样可以避免在显示代码中意外地使查询复杂化。(即使用ToList或ToArray)
  • 在复杂查询上使用EFProfiler或SQLProfiler来验证SQL是否合理

希望这能有所帮助,整体绩效与其说是一门科学,不如说是一门艺术。这是一个有点小规模的问题。

这里真正的问题是什么?查询速度慢还是因为必须执行查询而出现问题?我已经更新了问题中的问题