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

时间:2010-05-09 03:52:04

标签: sql-server entity-framework

我正在使用非常基本的EF语句获得超时。我只是从一个具有Entity.Title.StartsWith(“test”)和.Take(25)的表中进行选择。当我为没有返回结果的搜索运行此操作时,我会超时。

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

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

1 个答案:

答案 0 :(得分:4)

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

由于过时的统计信息,这是错误缓存的查询计划的常见症状。

请参阅此答案:Why are there performance differences when a SQL function is called from .Net app vs when the same call is made in 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 ''?'''