SQL資料庫逾時到期問題的解決方案

來源:互聯網
上載者:User

  如果SQL的資料庫越來越多,有時候會遇到讀取逾時,死結等一大堆問題,按經驗來說,資料結構設計不合理,經常使用視圖等原因都有,那些怎麼解決呢?下面看文章

  1.由於資料庫設計問題造成SQL資料庫新增資料時逾時

  癥狀:

  Microsoft OLE DB Provider for SQL Server 錯誤 '80040e31' ([ODBC SQL Server Driver]逾時已到期);

  伺服器上看CPU、記憶體佔用率很低;

  事件記錄中提示: 資料庫 '*********' 中檔案 '***********' 的自動成長在 453 毫秒後已取消或出現逾時。使用 ALTER DATABASE 設定更小的 FILEGROWTH 或設定新的大小。

  原因:

  資料庫設定時,[檔案增長]按百分比來增長,當資料庫檔案很大時(1G以上),新增操作都會報逾時,而這時候其實CPU、記憶體佔用率都非常非常的低。

  解決方案:

  把上述的檔案增長這裡設定為一個更低的百分比或者直接指定增加多少MB。

  2.SQL Server資料庫逾時設定

  修改用戶端的連線逾時設定。預設情況下,通過企業管理器註冊另外一台SQL Server的逾時設定是 4 秒,而查詢分析器是 15 秒。

  企業管理器中的設定:

  A、在企業管理器中,選擇菜單上的"工具",再選擇"選項";

  B、在彈出的"SQL Server企業管理器屬性"視窗中,點擊"進階"選項卡;

  C、在"串連設定"下的"登入逾時(秒)"右邊的框中輸入一個比較大的數字,如 30。

  查詢分析器中的設定:

  單擊“工具”->"選項"->"串連"; 將登入逾時設定為一個較大的數字,連線逾時改為0。

  3.查詢語句時逾時

  原因分析:

  查詢逾時一般來說首先要從sql語句和資料表的結構上找原因,最佳化sql語句和為資料庫的查詢欄位建索引是最常用的辦法。

  另外,資料庫的查詢逾時設定一般是sqlserver自己維護的(在你沒有修改query wait配置前),只有當你的實際查詢時間超過估計查詢時間的25倍時,才會逾時。

  而造成超出估計值那麼多的原因有兩種可能:

  一是估計時間不準確;

  二是sql語句涉及到大量佔用記憶體的查詢(如排序和雜湊操作),記憶體不夠,需要排隊等待資源造成的。

  解決辦法:

  A.最佳化語句,建立使用合適的索引;

  B.解決第一個問題的方法,更新要查詢表的索引分發統計,保證估計時間的正確性,UPDATE STATISTICS 表名;

  C.增加記憶體

  如果想手動設定查詢逾時,可以使用以下語句:

  sp_configure 'show advanced options', 1

  GO

  RECONFIGURE

  GO

  sp_configure 'query wait', 2147483647

  GO

  RECONFIGURE

  GO

  4.應用程式串連失敗

  故障:

  在應用程式中我們也會遇到類似的錯誤資訊,例如:

  Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'. [Microsoft][ODBC SQL Server Driver]逾時已到期.

  解決方案:

  A.如果遇到連線逾時的錯誤,我們可以在程式中修改 Connection 對象的逾時設定,再開啟該串連。例如:

  

  B.  如果遇到查詢逾時的錯誤,我們可以在程式中修改 Recordset 對象的逾時設定,再開啟結果集。例如:

  Dim cn As New ADODB.Connection

  Dim rs As ADODB.Recordset

  . . .

  cmd1 = txtQuery.Text

  Set rs = New ADODB.Recordset

  rs.Properties("Command Time Out") = 300

  '同樣以秒為單位,如果設定為 0 表示無限制

  rs.Open cmd1, cn

  rs.MoveFirst

  . . .

  另外,一些硬體及網路方面的原因也可能造成SQL資料庫連接逾時.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.