SQL超時解決方案-有時並不是設定問題

iSQlServer發表於2010-05-21

Server.scrīptTimeout,預設值是90秒.
要增大它,在你的asp檔案中加一句,如下:
Server.scrīptTimeout=999,
將頁面超時設為999秒.

最初我只設定Server.scrīptTimeout,
但仍會出現timeout錯誤,無論它的值設成都多大.
後在社群裡看到一帖子,提到commandTimeout屬性,
於是檢視Option Pack文件,果然還有timeout.

Connection物件和Command物件都有個CommandTimeOut屬性,
預設是30秒,如果你有一個耗時的查詢或資料處理,
很容易就超時了.要增大它,也很容易,建立物件後,
設定它的屬性,如下:
con.CommandTimeOut = 999,
設為999秒,其中con是一Connection物件.
如設為零,將無限等待,沒有這一timeout限制.

Command物件不會繼承Connection的這一屬性,
所以對可能超時的Command也要單獨設定CommandTimeout屬性.

最後IE也有個超時設定,5分鐘從伺服器得不到資料,也超時.
這種情況可能很少碰到,
但當我把一10多萬查詢的結果儲存為mdb檔案時,
就遇到了.(至於儲存的方法,請參看精華區中的一篇帖子.)
解決方法:(原文請參照微軟KB中的Q181050)

之前在做IC交易網的時候因資料太大了,超1000萬,加了記憶體解決
1. IE要4.01 sp1以上版本.
2. 在登錄檔中HKEY_CURRENT_USERSoftwareMicrosoft
WindowsCurrentVersionInternet Settings中
加一DWORD型別ReceiveTimeout,值設為比如8個9.
3. restart computer.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-663350/,如需轉載,請註明出處,否則將追究法律責任。

相關文章