我们的应用程序中的一个数据拉取了我们的性能噩梦。情况是基于区域的查询,我们有大量的客户列表,他们应该只在查看他们的区域时看到他们所在区域的客户。当前表格(为便于解释而缩减):
Customer (Table):
CustomerID
FirstName
LastName
....
RegionCustomer (Table):
RegionCustomerID
RegionID
CustomerID
这比使用以下语句通过 .net 实体框架检索(edmx 设置一对多关系,其中一个客户可以拥有多个 RegionCustomer):
EntitiesManager.Customers.Where(function(x) x.RegionCustomers.Any(function(y) y.RegionID = CurrentUserRegionID)).ToList()
当您在任一表中处理 < 1000 条记录时,这运行正常,但之后这是一场性能噩梦,sql server 会启动 CPU 一些令人震惊的事情并且需要很长时间。上面的语句创建的 SQL 对于它需要做的事情(通过 SQL Profiler 跟踪)来说非常讨厌。
只是想知道是否有人对如何加快速度有任何想法?
提前致谢