实体框架性能与 Sql Management Studio 相比不一致

And*_*dyV 2 sql-server entity-framework

我用一个非常基本的 EF 语句超时。我只是从带有 Entity.Title.StartsWith("test") 和 .Take(25) 的单个表中进行选择。当我为不返回任何结果的搜索运行此程序时,我会超时。

如果我分析并抓取 sql 语句,它看起来不错,如果我在 Management Studio 中运行该 sql,它会在几分之一秒内运行!

为什么相同的查询会在 Management Studio 中运行亚秒级并在由 EF 生成并从 Asp.Net 应用程序调用时超时?

Mit*_*eat 5

这可能意味着您需要重建统计信息。

这是由于统计数据过时而导致查询计划缓存不正确的常见症状。

请参阅此答案:为什么在从 .Net 应用程序调用 SQL 函数时与在 Management Studio 中进行相同调用时存在性能差异

这将更新所有统计信息并刷新视图和存储的过程(但要小心在生产机器上运行):

EXEC sp_updatestats 

EXEC sp_refreshview  

-- Probably won't need this as your are not using stored procs 
EXEC sp_msForEachTable 'EXEC sp_recompile ''?''' 
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

663 次

最近记录:

15 年,5 月 前