2013-06-05 24 views
-1

在客戶端上出現錯誤「超時」以觸發針對數據庫的某些命令。TADOStoredProc/TADOQuery CommandTimeout ...?

我的第一個校正測試選項是將CommandTimeout增加到99999 ......但恐怕這種處理會產生更多問題。

有沒有經歷過它......? 我不知道我的問題是否相關,和/或是否有其他選項更強大和更優雅的更正。

回答

0

假設超時並不是正確的做法是正確的。通常,我查找運行在超時周圍的日誌運行查詢。他們通常會在持續時間和閱讀時間方面脫穎而出。

然後,我會努力用這種方法來減少查詢執行時間:

https://www.simple-talk.com/sql/performance/simple-query-tuning-with-statistics-io-and-execution-plans/

如果這是導致問題的報告,你不能讓它運行得更快,則可能需要開始思考關於建立報告數據庫。

0

CommandTimeout是一個時間,客戶端正在等待來自服務器的響應。如果查詢在主VCL線程中運行,則整個應用程序將被「凍結」,並可能被Windows標記爲「未響應」。那麼,您希望您的用戶在冷凍應用程序中等待99999秒嗎?

通常,將Timeout值保留爲默認值,而不是像Sam建議的那樣專注於調整查詢。如果你碰巧有長時間運行的查詢(即一些後臺數據移動,存儲過程中的計算等),則將CommandTimeout設置爲0(= INFINITE),但在單獨的線程中運行它們。

相關問題