2015-12-27 11 views
1

我有一个存储过程,我知道可能需要一些时间来执行。SQL Server查询从代码运行更多时间比从管理工作室

当我从SQL Server Management Studio运行它时,大约需要12-15分钟才能完成,这很好。

但是当我从我的C#asp.net web应用程序运行它时,它在40分钟后崩溃,并且它仍然没有完成。

这两次运行有什么区别,以及如何修复它以从我的应用程序运行?

+5

** [应用程序运行缓慢,SSMS运行速度快吗? 了解性能之谜](http://www.sommarskog.se/query-plan-mysteries.html)**参数嗅探或并发访问和阻止 – lad2025

+0

您是否使用Profiler尝试过捕获时间? – shadow

+0

是的,我做了,但没有太大的帮助... –

回答

1

为了解决崩溃问题,我们增加了IIS中的超时时间。 @Apostrofix已发布this link以出乎意料的解决方案,我以前不熟悉。

从这个岗位创先报价为:

大多数情况下建议的修复(尽管它取决于你的查询和存储过程的 结构)是不能直接在查询中使用参数 ,但而是将它们存储到本地变量 中,然后在查询中使用这些变量。

+0

建议修复(将参数存储到本地变量中)使我的SP drop的执行时间从4'30''降至15''! – Daniel

0

嘿,你可以尝试增加从连接字符串超时在web配置: 只是改变超时键​​的值。

<add key="Inf:DatabaseCommandTimeoutSeconds" value="20" /> 
+0

我知道我可以增加超时,但我不希望查询运行那么久,这是一个糟糕的解决方法,这样做... –

+0

你可以粘贴你的数据库查询?并告诉我你使用了多少数据?也许我可以优化查询。 –

+0

我的团队领导在工作中不允许我这样做...... –

相关问题