我正在使用非常基本的EF语句获得超时。我只是从一个具有Entity.Title.StartsWith(“test”)和.Take(25)的表中进行选择。当我为没有返回结果的搜索运行此操作时,我会超时。
如果我分析并获取sql语句,它看起来很好,如果我在Management Studio中运行它,它会在几分之一秒内运行!
为什么同一个查询在Management Studio中运行亚秒级,并在EF生成并从Asp.Net应用程序调用时超时?
答案 0 :(得分:4)
这可能意味着您需要重建统计信息。
由于过时的统计信息,这是错误缓存的查询计划的常见症状。
这将更新所有统计信息并刷新视图和存储过程(但要小心在生产计算机上运行):
EXEC sp_updatestats
EXEC sp_refreshview
-- Probably won't need this as your are not using stored procs
EXEC sp_msForEachTable 'EXEC sp_recompile ''?'''