2010-08-11 41 views
1

我寫了一個非常複雜的存儲過程,需要大約2分鐘才能運行(Is是單個Update語句)。但是,在這2分鐘內存儲過程超時。我想知道是否有方法刷新存儲過程超時過期,以便我不必將服務器超時從30秒更改。我不能真正地破壞存儲過程,因爲運行存儲過程的多個較小版本是不合適的。在存儲過程中的每個地方都會這樣說,比如每當存儲的proc成功更新一行時,刷新定時器以便它可以在不超時的情況下更新所有行。任何意見,將不勝感激。謝謝。有沒有辦法讓存儲過程不斷刷新其超時到期TSQL?

+0

向我們展示您的過程,也許我們可以幫助您優化它,所以不需要很長時間。 – HLGEM 2010-08-11 20:08:36

+0

如果你正在逐行更新,你永遠不應該這樣做 – HLGEM 2010-08-11 20:09:13

回答

2

不可以。命令超時純粹是a client side thing

用的CommandTimeout會發生什麼事是, SQL Server將只沿 突突執行查詢,不知道 任何關於超時,當 客戶確定查詢 花費的時間太長,它然後會發送一個 消息給服務器,告訴它去 取消查詢。所以,由於 超時值純粹是客戶端 的事情,您將無法在SQL Server內部更改它 。

您需要在調用代碼中增加CommandTimeout

+0

我看,這是不幸的。謝謝回覆。 – 2010-08-11 16:50:03

+0

@SamF - 你是怎麼稱呼它的?你能增加超時嗎?如果不是,你可以異步調用它嗎? – 2010-08-11 16:51:11

+0

啊我看到了,我可以自己設置超時值,然後將其設置回原來的(.NET) – 2010-08-11 16:54:17

相關問題