首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL性能优化(实体框架)

SQL性能优化(实体框架)
EN

Stack Overflow用户
提问于 2011-02-02 01:00:54
回答 2查看 713关注 0票数 0

我在Entity Framework中遇到了非常糟糕的性能。

我将它绑定到视图,使用EF查询它们需要3-6倍的时间。

下面是我的测试用例(伪),对相同数据的常规选择:

代码语言:javascript
复制
Select * FROM myView 
WHERE DateField > X 
AND DateField < Y AND ID in ('a','b') 
AND [expirationDateTime] = '9999-12-31'

Execution Time: 0:30

EF生成的SQL

代码语言:javascript
复制
exec sp_executesql N'SELECT 
    [Extent1].[Field1] AS [Field1], 
    ...
    FROM  (SELECT 
              [myView].Field1 AS [Field1]
              ...
              FROM [dbo].[myView] AS [myView]) AS [Extent1]
    WHERE ([Extent1].[DateField] > @p_linq__0)
    AND   ([Extent1].DateField] < @p_linq__1)
    AND   ([Extent1].[expirationDateTime] = @p__linq__2)',
    N'@p__linq__0 datetime,@p__linq__1 datetime,@p__linq__2 datetime',
      @p__linq__0='2010-12-01 00:00:00',
      @p__linq__1='2011-01-06 00:00:00',
      @p__linq__2='9999-12-31',

Execution Time: 2:54

考虑到对如何呈现SQL的控制有限,如何优化EF查询?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-02 01:23:02

EF版本中缺少AND ID in ('a','b')接缝。这可能会有很大的不同。

票数 1
EN

Stack Overflow用户

发布于 2011-03-01 17:30:05

你把(NOLOCK)放在你所有的视图中了吗?LOL

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4865535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档