簡體   English   中英

為什么Sql Server連接TimesOut

[英]Why does Sql Server connection TimesOut

我正在為我的Sql數據庫使用企業庫數據。 我正在使用3.1版。 我正在使用此代碼執行長時間運行的sp(大約1分鍾)。

Dim db As SqlDatabase = New SqlDatabase(System.Web.Configuration.WebConfigurationManager.ConnectionStrings("portalConnection").ConnectionString)
                    db.ExecuteNonQuery("spnametoexecute")

連接字符串如下所示

<add name="portalConnection" connectionString="Server=IP;Database=DBName;uid=User;pwd=PWD; Timeout=180;"
  providerName="System.Data.SqlClient" />

問題是我總是會收到超時異常。 這是為什么 ?

System.Data.SqlClient.SqlException: Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.

好吧,有幾種可能性:

  • 您的查詢過於復雜且耗時太長(嘗試編寫更好的TSQL,添加索引或增加超時)
  • 您被另一個SPID阻止(也許您自己在另一個連接上)

第二,通常是問題所在。 查看阻塞等(sp_who / sp_who2),看是否有任何阻塞。 並使用跟蹤/探查器調查第一個選項。

我認為您設置了錯誤的服務器ip或未對服務器進行配置。 檢查服務器配置中是否允許管道和tcp / ip。 很多時候會忘記。

您是否總是超時,或者僅在長時間運行的查詢執行時才超時? 手動運行時-即在Management Studio中,需要多長時間? 您的連接設置為在3分鍾內超時,這是非常長的時間。

您需要在幾個級別上進行攻擊:

  1. 分析和優化查詢
  2. 使用非常簡單的查詢進行測試,以查看是否存在連接問題

我不太熟悉企業數據庫,但是我想看看SqlDatabase對象是否具有timeout屬性。 嘗試在代碼中設置超時並測試行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM