Sql Server的數據庫超時問題
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
一、由于數據庫設計問題造成SQL數據庫新增數據時超時 癥狀: Microsoft OLE DB Provider for SQL Server 錯誤 '80040e31' ([ODBC SQL Server Driver]超時已過期);
原因: 解決方法: 二、SQL Server數據庫超時設置
修改客戶端的連接超時設置。默認情況下,通過企業管理器注冊另外一臺SQL Server的超時設置是 4 秒,而查詢分析器是 15 秒。 企業管理器中的設置: 在企業管理器中,選擇菜單上的"工具",再選擇"選項"; 在彈出的"SQL Server企業管理器屬性"窗口中,點擊"高級"選項卡; 在"連接設置"下的"登錄超時(秒)"右邊的框中輸入一個比較大的數字,如 30。 查詢分析器中的設置: 單擊“工具”->"選項"->"連接"; 將登錄超時設置為一個較大的數字,連接超時改為0。
查詢超時一般來說首先要從sql語句和數據表的結構上找原因,優化sql語句和為數據庫的查詢字段建索引是最常用的辦法。 另外,數據庫的查詢超時設置一般是sqlserver自己維護的(在你沒有修改query wait配置前),只有當你的實際查詢時間超過估計查詢時間的25倍時,才會超時。 而造成超出估計值那么多的原因有兩種可能: 一是估計時間不準確; 二是sql語句涉及到大量占用內存的查詢(如排序和哈希操作),內存不夠,需要排隊等待資源造成的。 這有什么辦法解決呢? 1、優化語句,創建使用合適的索引; 2、解決第一個問題的方法,更新要查詢表的索引分發統計,保證估計時間的正確性,UPDATE STATISTICS 表名; 3、增加內存。 如果想手動設置查詢超時,可以使用以下語句:
你會遇到這樣的故障: 在應用程序中我們也會遇到類似的錯誤信息,例如: Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'. [Microsoft][ODBC SQL Server Driver]超時已過期. 解決方法如下: 如果遇到連接超時的錯誤,我們可以在程序中修改 Connection 對象的超時設置,再打開該連接。例如:
如果遇到查詢超時的錯誤,我們可以在程序中修改 Recordset 對象的超時設置,再打開結果集。例如:
另外,一些硬件及網絡方面的原因也可能造成SQL數據庫連接超時。 該文章在 2012/3/2 23:30:49 編輯過 |
關鍵字查詢
相關文章
正在查詢... |