And*_*dyV 2 sql-server entity-framework
我用一个非常基本的 EF 语句超时。我只是从带有 Entity.Title.StartsWith("test") 和 .Take(25) 的单个表中进行选择。当我为不返回任何结果的搜索运行此程序时,我会超时。
如果我分析并抓取 sql 语句,它看起来不错,如果我在 Management Studio 中运行该 sql,它会在几分之一秒内运行!
为什么相同的查询会在 Management Studio 中运行亚秒级并在由 EF 生成并从 Asp.Net 应用程序调用时超时?
这可能意味着您需要重建统计信息。
这是由于统计数据过时而导致查询计划缓存不正确的常见症状。
请参阅此答案:为什么在从 .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 ''?''' 
| 归档时间: | 
 | 
| 查看次数: | 663 次 | 
| 最近记录: |