C# SQL Server和ASP.NET MVC性能问题

C# SQL Server和ASP.NET MVC性能问题,c#,sql-server,asp.net-mvc,sql-server-2008,asp.net-mvc-4,C#,Sql Server,Asp.net Mvc,Sql Server 2008,Asp.net Mvc 4,我正在评测一个SQL Server 2008存储过程,如果它是从我的ASP.NET MVC 4应用程序执行的,它会延迟4秒,但是如果我从SQL Server Management Studio使用相同的参数手动执行相同的存储过程,它只会延迟250毫秒,与第一个存储过程相比,它会产生1%的读取 你知道为什么会发生这种情况,以及我如何解决它吗 谢谢大家! 为了使它成为一个公平的测试,请确保在从management studio运行查询之前清除SQL Server缓冲区。SQL Server缓存结果集

我正在评测一个SQL Server 2008存储过程,如果它是从我的ASP.NET MVC 4应用程序执行的,它会延迟4秒,但是如果我从SQL Server Management Studio使用相同的参数手动执行相同的存储过程,它只会延迟250毫秒,与第一个存储过程相比,它会产生1%的读取

你知道为什么会发生这种情况,以及我如何解决它吗


谢谢大家!

为了使它成为一个公平的测试,请确保在从management studio运行查询之前清除SQL Server缓冲区。SQL Server缓存结果集。他们应该平等吗?如果是这样,您需要进行一些查询调优。在这里发布执行计划,我将尝试诊断问题

CHECKPOINT; 
GO 
DBCC DROPCLEANBUFFERS; 
GO
DBCC FREEPROCCACHE;
GO

你是用同样的代码输入来执行它的吗?是的,同样的输入,我复制探查器文本并粘贴到management studio中,没有延迟。为什么是否定投票,你需要多少信息?这里有一篇文章可能会有所帮助。有点长,但值得花时间。非常感谢您DMasonIts的工作就像一个魅力!但是,我真的不明白为什么缓存或计划可以不同,而查询和参数却来自不同的环境。感谢您的帮助SQL Server根据一系列因素决定如何最好地从表中检索数据。基本上,它从您定义的过去(+索引、使用统计等)中学习。通过运行这些语句,您可以有效地告诉it从无到有,重新学习如何最好地再次调用您的过程。在处理任何SQL性能问题之前,最好先清除缓存,然后研究性能问题,否则您可能会花费大量时间来诊断一个问题,而Microsoft的一个聪明人已经为您解决了这个问题。享受。