生產環境的系統,在查詢數據的時候,日誌記錄數據“Timeout 時間已到。在操作完成之前超時時間已過或服務器未響應。”,“等待的操作過時”等,初步判斷是因爲查詢超時導致的,根據源碼分析,獲取到查詢操作的SQL腳本,然後跟蹤到查詢業務的SQL參數信息,在數據庫中查詢,發現數據的返回時間小於1s,基本上是實時返回,排除了鎖表等操作。
後更改數據查詢的超時時間,改成3分鐘,系統還是報查詢超時。但是程序在測試環境,反覆的測試,也沒有問題;而且程序昨天是正常的,數據量也沒有出現暴增的情況,整體的數據量也不大。
後通過網絡查詢,發現有重啓服務器解決該問題的方法,但是由於是生成環境,沒法進行重啓服務器,客戶在等,很是着急。後在通過萬能的網絡,查詢到,可能是參數化傳參導致的,傳遞參數的SqlDbType和數據庫裏的類型不一致會導致出現數據庫上直接查詢,返回數據很快,但是通過程序去查詢,會出現查詢超時的情況。然後去檢查程序和數據庫,發現確實不一致,程序中使用的是SqlDbType.VarChar,但是在數據庫存儲中使用的數據類型是NVarChar。
然後修改程序的SQL語句不是參數化傳參,改爲拼接的方式,然後發佈程序,登錄檢測,發現程序正常返回數據,這樣看來,問題就出現在C#程序中的參數化的參數類型和數據庫中的類型不一致導致的。
這個Bug,是個隱藏的Bug,問題不會一直出現,因爲程序中這樣操作的,不僅僅是這個查詢的一處地方。這次的問題比較特殊,做個記錄,以備下次查詢。
通過C#查詢SQLServer數據庫超時
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
sql語法、關係建模
死瘦宅
2019-02-24 22:35:22
MySQL 事務、函數、觸發器、數據庫備份、權限管理
死瘦宅
2019-02-24 22:35:12
MongoDB索引優化詳解
geekpy
2019-02-24 14:20:06
Sql server中一些Select檢索高級用法
wbzjacky
2019-02-24 13:12:37
如何釋放已刪除的InnoDB磁盤空間
lvrenX
2019-02-24 13:04:33
將frm,myi,myd文件打包成sql文件
jason1982
2019-02-24 12:57:22
某熊的技術之路指北 ☯
王下邀月熊_Chevalier
2019-02-23 16:23:03
安裝SQL數據庫之一些常見故障
179390988
2019-02-23 14:05:54
安裝SQL數據庫之補丁安裝常見問題
179390988
2019-02-23 14:05:54
PL/SQL 取幾段查詢結果的交集, 查詢費用報表的條件(R12.1.1)所對應的費用報表規則
tkchw4
2019-02-23 14:05:35
oracle em啓動
huchazsu
2019-02-23 14:01:49
oracle 啓動歸檔模式
huchazsu
2019-02-23 14:01:14
zabbix企業級分佈式監控系統--zabbix-server和zabbix-agent的配置過程
jordanjiao23
2019-02-23 13:59:59
24小時熱門文章