2007年10月31日 星期三

SQL 執行逾期的問題

當執行比較費時的SQL語法時,雖然我們在 Query Analyzer裡執行不會出錯,但寫到程式裡頭時,卻會發生

Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

的錯誤訊息。這是因為在 .Net 裡的 ADO 預設會對 SqlCommand.CommandTimeout 屬性設定 30,也就是只等待30秒,
如果clinet 端等待Server回應超過30秒以後,就會終止 。

所以,我們可以透過這個屬性,來設定我們期待可完成的時間。如果 CommandTimeout 設為 0,則表示無止盡的等待。
我們最好是盡量避免去做這種傻事,凡是要想開一些 ^_^

沒有留言:

張貼留言