在客戶端上出現錯誤「超時」以觸發針對數據庫的某些命令。TADOStoredProc/TADOQuery CommandTimeout ...?
我的第一個校正測試選項是將CommandTimeout增加到99999 ......但恐怕這種處理會產生更多問題。
有沒有經歷過它......? 我不知道我的問題是否相關,和/或是否有其他選項更強大和更優雅的更正。
在客戶端上出現錯誤「超時」以觸發針對數據庫的某些命令。TADOStoredProc/TADOQuery CommandTimeout ...?
我的第一個校正測試選項是將CommandTimeout增加到99999 ......但恐怕這種處理會產生更多問題。
有沒有經歷過它......? 我不知道我的問題是否相關,和/或是否有其他選項更強大和更優雅的更正。
假設超時並不是正確的做法是正確的。通常,我查找運行在超時周圍的日誌運行查詢。他們通常會在持續時間和閱讀時間方面脫穎而出。
然後,我會努力用這種方法來減少查詢執行時間:
如果這是導致問題的報告,你不能讓它運行得更快,則可能需要開始思考關於建立報告數據庫。
CommandTimeout是一個時間,客戶端正在等待來自服務器的響應。如果查詢在主VCL線程中運行,則整個應用程序將被「凍結」,並可能被Windows標記爲「未響應」。那麼,您希望您的用戶在冷凍應用程序中等待99999秒嗎?
通常,將Timeout值保留爲默認值,而不是像Sam建議的那樣專注於調整查詢。如果你碰巧有長時間運行的查詢(即一些後臺數據移動,存儲過程中的計算等),則將CommandTimeout設置爲0(= INFINITE),但在單獨的線程中運行它們。