2014-03-26 35 views
0

我正在分析一个SQL Server 2008存储过程,如果它是从我的ASP.NET MVC 4应用程序执行的,它会延迟4秒,但如果手动执行相同的存储使用来自SQL Server Management Studio的相同参数进行处理,它只会延迟250毫秒,与第一个相比,读取的读数为1%。SQL Server和ASP.NET MVC性能问题

任何想法为什么会发生这种情况,我该如何解决它?

谢谢!

+0

您是否在代码中使用相同的输入执行它? – Haney

+0

是的,相同的输入,我复制分析器文本并粘贴到管理工作室,我得到没有延迟 – Santiago

+1

为什么反对票,你需要多少信息? – Santiago

回答

1

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

CHECKPOINT; 
GO 
DBCC DROPCLEANBUFFERS; 
GO 
DBCC FREEPROCCACHE; 
GO 
+0

它的作品就像一个魅力!但是,我真的不明白为什么缓存或计划可能与来自不同环境的查询和参数不同。感谢您的帮助 – Santiago

+1

SQL Server根据一大堆因素决定如何从表中检索数据。从本质上说,它从过去学习(+索引,用法统计等),你已经定义。通过运行这些语句,您可以有效地告诉它从头开始,重新学习如何再次调用您的过程。在处理任何SQL性能问题之前,最好先清除缓存,然后查看性能问题,否则可能会花费大量时间来诊断Microsoft的聪明人已经为您解决的问题。请享用。 – sarin