bob*_*lez 2 c# sql performance entity-framework
所以我的项目中有一个非常基本的数据模型(针对.NET 4.0,使用NuGet安装的EF 5,数据库优先),有2个表,Item和ItemGroup.
Item-table有各种字段,包括字符串和数字,以及指向ItemGroup的外键.
另一方面,ItemGroup只有Id,Name和Code(其中最后2个是字符串).
现在,我有大约50k个项目,只有100个ItemGroups.如果我context.Items.ToList()使用SQL事件探查器执行a ,持续时间大约为2-3秒,这是完全可以接受的.但是,如果我想使用同时加载ItemGroups context.Items.Include("ItemGroup").ToList(),则执行时间会跳到大约12秒.此外,如果我在获取所有Items之后只获取所有ItemGroup,则执行时间也很长.这让我相信这是物品到各自的团队的映射,花费时间.
但是,这仍然无法解释为什么SQL Profiler报告非常简单的INNER JOIN -query也会超过10秒,相比之下,没有JOIN的同一查询会花费2-3秒.
我在这里不知所措,以前从未遇到过这种问题,所以任何建议都非常受欢迎.
| 归档时间: |
|
| 查看次数: |
7255 次 |
| 最近记录: |