① thinkpphp3.1.3 rabbitmq 消費時 長時間不用 資料庫連接超時2006:Mysql server has gone away 咋怎
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 秒。
企業管理器中的設置:
在企業管理器中,選擇菜單上的"工具",再選擇"選項";
在彈出的"SQL Server企業管理器屬性"窗口中,點擊"高級"選項卡;
在"連接設置"下的"登錄超時(秒)"右邊的框中輸入一個比較大的數字,如 30。
查詢分析器中的設置:
單擊「工具」->"選項"->"連接"; 將登錄超時設置為一個較大的數字,連接超時改為0。
3.查詢語句時超時
原因分析:
查詢超時一般來說首先要從sql語句和數據表的結構上找原因,優化sql語句和為資料庫的查詢欄位建索引是最常用的辦法。
另外,資料庫的查詢超時設置一般是sqlserver自己維護的(在你沒有修改query wait配置前),只有當你的實際查詢時間超過估計查詢時間的25倍時,才會超時。
而造成超出估計值那麼多的原因有兩種可能:
估計時間不準確;
sql語句涉及到大量佔用內存的查詢(如排序和哈希操作),內存不夠,需要排隊等待資源造成的。
解決辦法:
優化語句,創建\使用合適的索引;
解決第一個問題的方法,更新要查詢表的索引分發統計,保證估計時間的正確性,UPDATE STATISTICS 表名;
增加內存
如果想手動設置查詢超時,可以使用以下語句:
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.ConnectionDim rs As ADODB.Recordset. . . cmd1 = txtQuery.TextSet rs = New ADODB.Recordsetrs.Properties("Command Time Out") = 300'同樣以秒為單位,如果設置為 0 表示無限制rs.Open cmd1, cnrs.MoveFirst. . .
另外,一些硬體及網路方面的原因也可能造成SQL資料庫連接超時.
② .NET連接SQLServer返回數據時提示「超時時間已到。在操作完成之前超時時間已過或伺服器未響應。」 附代碼
我也遇到過這個問題,你可以試著打開你的sql客戶端,連接下伺服器上的資料庫,估計會直接出現這個錯誤提示,然後你把連接時間改成30秒,或者更長一些就能夠登錄到伺服器上的sql server.
解決方法就是把項目配置文件中的訪問超時時間設置長一些.
我遇到這個問題時是因為我的項目發布在虛擬機上,所以速度比較慢,訪問總是超時,去試試吧,這個方法或許能解決你的問題.
不行的話就在代碼上設置command的timeout時間.
③ [Microsoft][ODBC SQL Server Driver]超時已過期
換sql2005
④ 如何解決訪問sql資料庫超時問題
adoconnection1.CommandTimeout = 0命令執行超時時間(以秒為單位),設置為零說明無限制adoconnection1.ConnectionTimeout = 0連接資料庫超時時間(以秒為單位),設置為零說明無限制
⑤ sqlserver有時查詢不了的問題
你查詢的數據處理時間太長了。
你可以在「sql查詢分析器」裡面查詢,就不會出現超時這種現象。
⑥ sqlserver遠程連接中鏈接伺服器"」的 OLE DB 訪問介面 "SQLNCLI" 返回了消息 "登錄超時已過期問題
首先要排除要LINK的遠程伺服器防火牆沒有問題,即允許SQLSERVER進程通行或例外。
然後檢查遠程伺服器上目標資料庫的狀態是否正常,如是否有阻塞進程或該用戶有許可權。
當然可能還有其他方面的原因。
⑦ 為什麼SQL提示超時過期
可能是sqlserver中了病毒,最好下載1個sqlserver sp4裝上。
⑧ sqlserver查詢很慢、而且超時為什麼
網路不好...
⑨ Sqlcmd: 錯誤: Microsoft SQL Server Native Client 10.0 : 登錄超時已過期。
Sqlcmd: 錯誤: Microsoft SQL Server Native Client 10.0 : 登錄超時已過期是設置錯誤造成的,解決方法為:
1、在附加文件目錄下找到.mdf文件,點擊右鍵,查看「屬性」,選擇「安全」選項卡點擊「編輯」編輯按鈕。
⑩ sql 查詢顯示:([ODBC SQL Server Driver]超時已過期
應該是你的程序問題,你檢查下資料庫聯接是否正確,然後查看連接超時時間。(盡量不要小於或大於30秒)
如果前面2個都沒問題,就檢查你出現錯誤的頁面,看看是否是請求的數據比較多,如果數據量大,你只有改進下取數據的方法,不要緩存太多到內存。