天天看點

sql 查詢報錯:逾時時間已到。在操作完成之前逾時時間已過或伺服器未響應。

出現這種錯誤提示的原因是什麼??

 1 資料連接配接對象沒關閉? 

 2 伺服器響應時間不夠長?

 3 。。。

測試的時候發現,,,語句和函數有差別

有一個函數執行報錯

有的不報錯

1:   SqlCommand com = new SqlCommand();

                com.CommandTimeout = 60; //設定相應時間

2: 在資料庫中設定

       (菜單) 工具-----選項----設計器----= 事務逾時時間 設定為60秒

  語句 報錯: 如下:

sql 查詢報錯:逾時時間已到。在操作完成之前逾時時間已過或伺服器未響應。

用了第二種方式 還是出現同樣的問題:

解決方式如下:設定 響應時間

 adp.SelectCommand.CommandTimeout = 180;

sql 查詢報錯:逾時時間已到。在操作完成之前逾時時間已過或伺服器未響應。

3.Web頁面執行逾時,如上傳大批量的檔案

   需要修改配置檔案:

<system.web> 

<httpRuntime maxRequestLength="102400"executionTimeout="720" />

</system.web>

同一個方法,一個連接配接查詢語句 在資料庫執行了46秒,一個簡單語句執行2秒,這個執行了46秒的過程中報錯,“ 程式逾時!”,同一個條語句執行1秒都沒有也報 “逾時錯誤”

網上搜了一大把:

1

把SQL Server 2005的最大使用記憶體設定為6G(系統總實體記憶體為8G)後,作查詢時經常傳回查詢逾時,我該怎麼辦?

2

除了修改逾時時間設定,

建議盡量優化查詢語句.

3

有很多種方面的原因 建議盡量的去優化查詢 和設計好表結構

4

真是要逾時的查詢肯定有問題

檢查下dmv是不是被鎖給阻塞了,或者大表産生了笛卡爾積的錯誤連接配接

總結為:優化語句和表結構。。。。優化語句還行表結構怎麼優化,三個表連接配接最為簡單的連接配接語句隻是表裡的資料有點多,産生的笛卡爾積多,多沒關系啊?

終于發現重點:重點:  一個語句三表連接配接語句查詢不帶order by 語句執行耗時51秒。  帶上order by 語句 耗時1秒不到。     多次驗證,結論就是這麼明顯。

結論:連接配接查詢 帶上  order by 可以提高效率。。加上order by 語句不報逾時錯誤了。我的問題已經over。

 查詢一個函數,,函數裡用到遊标,耗時1分2秒, 其中一個多表連接配接耗時45秒,同樣的查詢語句,,在資料較少的情況下沒問題,資料多了就變的有問題。優化語句

盡量減少多表連接配接查詢,特别是資料量大的表。

sql 查詢報錯:逾時時間已到。在操作完成之前逾時時間已過或伺服器未響應。

ok  question is  over