2012-08-09 34 views
1

我有一个SP,它在SqlServer环境中需要20秒,但有时在我的ASP.NET页面上运行SP时,我得到了SqlServer超时消除。 我事件设置CommandTimeout和ConnectionTimeout为60,但我仍然得到异常。 我希望能帮助我。ASP.NET中的SqlServer超时

+0

还有一件事我没有任何transaction.when我得到这个错误,我可以在SqlServer管理工作室运行SP。 – Pers 2012-08-09 06:02:15

+0

你说过你有一次得到这个错误,对吗? – 2012-08-09 07:57:34

+0

有时候..当我得到这个错误时,我运行'改变Proc'命令一次,然后再次工作。 – Pers 2012-08-09 08:47:31

回答

1

其他一些操作可能会锁定表格。将超时设置为更高的值并检查。

在运行PROC执行任何锁定

+0

表上没有锁定,因为当我得到异常时,我可以在管理工作室中运行SP,但是在我的网页中,我看到超时错误,以及在运行alter SP后,我的网页有效。 – Pers 2012-08-09 06:24:36

0

sp_locksp_who2系统过程可以尝试

cmd.CommandTimeout = 0; 

如果您正在执行一个查询到很长一段时间。

0

1)试过类似?

SqlCommand cmd = new SqlCommand("MyReport", conn); 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.CommandTimeout = 3660; //// or set it zero (0) 

2)和这个???

3)假设你的数据库服务器和执行点是不同的,是您的Internet/Intranet连接好?
4)检查VPN连接(如果使用)

+0

我把命令的超时和连接超时设置为60. – Pers 2012-08-09 08:07:12

+0

但是SP在最糟糕的状态下需要20秒,我想知道为什么它不会在我的ASP.NET页面中返回数据,并且如果同时我在管理工作室中运行SP它工作得很好。 – Pers 2012-08-09 08:10:15

+0

已检查的互联网/ vpn conectivity? – 2012-08-09 08:33:47

0

从SSMS执行查询并保存执行计划。然后运行该应用程序并让SQL事件探查器捕获跟踪,然后按照此link中提到的从分析器保存执行计划。

比较两个执行计划以找出执行中的实际差异。

检查parameter sniffing。如果仍然存在问题,请确保数据库统计信息已更新,但有时这可能是此删除后的问题并创建该过程。