C#百萬資料查詢逾時問題

來源:互聯網
上載者:User

用c#從百萬資料中篩選一些資訊時,經常會出現程式連線逾時的錯誤,常見的錯誤很多,例如:Timeout expired. The timeout period elapsed prior to completion of the operation or the server等等

   本文就常見的幾種解決方案進行說明,純屬個人見解,歡迎拍磚

     ①:當然第一步要查看是否Connection沒關閉問題,一般新手都會犯這個錯誤,需要認真查看一下哦,這個就不詳細說了。

     ②:如果將sql語句複製到查詢分析器中執行,如果執行時間本來就超過30秒,那麼一般採用如下的解決方案:

          首先分析引起Timeout的原因,一般是Connection沒關閉或者SqlConnection.ConnectionTimeout逾時,另外一種就是SqlCommand.CommandTimeout引起的, SqlCommand的此方法為擷取或設定在終止執行命令的嘗試並建置錯誤之前的等待時間,

        他的預設為 30 秒,你可以設定為0 ,它表示無限制,但是最好不要去設定0 ,否則會無限的等待下去的,只需要針對查詢分析器的時間,去設定這個時間就可以了

 

     ③:執行時間不是很長,但是還是操作逾時,那麼 也有很多原因,一般經常出現的有兩種,asp.Net應用程式的請求逾時,或者是串連池的串連生存期過去,,因為串連池預設值是60秒,那麼針對這兩種解決方案為:

   

      解決應用程式請求逾時:

          在web.config中加上以下語句:

            <system.web> 

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

           </system.web>  

           executionTimeout:是允許執行請求的最大時間限制,單位為秒
          maxRequestLength:指示 ASP.Net 支援的最大檔案上傳大小。該限制可以防止。。。。大家都懂的。。呵呵 

    

      解決程式池生存周期問題:

         在資料庫連接字串中修改:database=AA;uid=sa;pwd=sa; Pooling=true; MAX Pool Size=1024;Min Pool Size=1;Connection Lifetime=60

         至於含義基本上從英文的意思上大家就明白了,呵呵。。。當然Min Pool Size=1這個設定還有很多講究,如果想研究的可以看一下下面的文章,呵呵

         http://www.cnblogs.com/ZHUYIN/archive/2011/11/02/2232578.html

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.