日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

引起SQL数据库超时的问题分析及解决办法

發布時間:2025/7/14 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 引起SQL数据库超时的问题分析及解决办法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.由于數據庫設計問題造成SQL數據庫新增數據時超時

? 癥狀:
? Microsoft OLE DB Provider for SQL Server 錯誤 '80040e31' ([ODBC SQL Server Driver]超時已過期);
? 服務器上看CPU、內存占用率很低;
? 事件日志中提示: 數據庫 '*********' 中文件 '***********' 的自動增長在 453 毫秒后已取消或出現超時。使用 ALTER DATABASE 設置更小的 FILEGROWTH 或設置新的大小。
? 原因:
? 數據庫設置時,[文件增長]按百分比來增長,當數據庫文件很大時(1G以上),新增操作都會報超時,而這時候其實CPU、內存占用率都非常非常的低。
? 解決方法:
? 把上述的文件增長這里設置為一個更低的百分比或者直接指定增加多少兆字節。

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 對象的超時設置,再打開該連接。例如:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSNtest="DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=mydatabase"
Conn. Properties("Connect Timeout") = 15 '以秒為單位
Conn.open DSNtest
%>?
? 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數據庫連接超時.

?

轉載于:https://www.cnblogs.com/conquer/archive/2008/04/20/1162332.html

總結

以上是生活随笔為你收集整理的引起SQL数据库超时的问题分析及解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。