問題背景
一客戶“銷售發(fā)貨單”反饋無法添加,不管是一條數(shù)據(jù)還是多條數(shù)據(jù),都是轉(zhuǎn)半天后報“超時”的錯誤。
測試+檢查+疑問
經(jīng)檢查核實(關(guān)閉所有check、EV、知會、審批,還是報超時錯誤)未找到癥結(jié);使用SQL?Server?Profiler跟蹤亦未發(fā)現(xiàn)有其他語句影響效率,但可以發(fā)現(xiàn)發(fā)貨單新增寫入數(shù)據(jù)時時間很長占用資源很大,切久久不會釋放,如下圖:
再次檢查
這說明系統(tǒng)正常單據(jù)寫入出現(xiàn)問題;后尋求波哥協(xié)助,通過 語句 dbcc?checkdb('AErp_HC') 檢查該數(shù)據(jù)發(fā)現(xiàn)異常;
解決
通過修復(fù)語句完成對數(shù)據(jù)庫修復(fù) ??dbcc checkdb('AErp_HC', repair_allow_data_loss);
注意:
A.為保險起見,需要先備份數(shù)據(jù)庫;
B.執(zhí)行修復(fù)語句時報錯提示:“未處理修復(fù)語句,數(shù)據(jù)庫需處于單用戶模式下。”
將數(shù)據(jù)庫設(shè)置為單用戶模式:SQL對象資源管理器/找到對應(yīng)數(shù)據(jù)庫AErp_HC/右擊-屬性/選項/狀態(tài)限制訪問做如下設(shè)置
設(shè)置好后,再次執(zhí)行修復(fù)語句即可,修復(fù)后測試,發(fā)貨單可正常保存。
分析
預(yù)計是日常服務(wù)器非正常斷電、SQL進程異常終止或其他原因引起!最終完美解決~