EF代码中的子查询优先4.1

时间:2012-01-06 15:23:59

标签: c#-4.0 entity-framework-4 wcf-data-services

我通过一个相当简单的EF 4.1代码优先模型创建了一个WCF数据服务。对于每个请求,我必须提供一个clientid来维护我的多租户数据库中的数据隔离。我看到了糟糕的性能,在运行sql server跟踪后,我发现所有参数化查询都使用了这样的子查询。

select top 100 <This is because of paging>
colA,
colB,
colC
from (select colA, colB, colC
      from table
      where clientid = 12345)
orderby ..... 

有没有办法调整它,以便它跳过选择的子查询?这似乎是荒谬的,并且令人惊讶的数量级减慢了性能。

感谢。

1 个答案:

答案 0 :(得分:1)

  

有没有办法调整它以便它跳过select的子查询?

否,除非您要为MSSQL Server(或您正在使用的其他数据库)重写整个EF提供程序。

  

这似乎是荒谬的,并且令人惊讶的数量级减慢了性能。

您是否真的调查了性能问题的来源?您展示的查询应该由DB服务器上的查询优化器进行优化,并且不应对性能产生任何显着影响。

确保您已正确配置索引和最新数据统计信息。

相关问题