问题背景
一客户“销售发货单”反馈无法添加,不管是一条数据还是多条数据,都是转半天后报“超时”的错误。
测试+检查+疑问
经检查核实(关闭所有check、EV、知会、审批,还是报超时错误)未找到症结;使用SQL Server Profiler跟踪亦未发现有其他语句影响效率,但可以发现发货单新增写入数据时时间很长占用资源很大,切久久不会释放,如下图:
再次检查
这说明系统正常单据写入出现问题;后寻求波哥协助,通过 语句 dbcc checkdb('AErp_HC') 检查该数据发现异常;
解决
通过修复语句完成对数据库修复 dbcc checkdb('AErp_HC', repair_allow_data_loss);
注意:
A.为保险起见,需要先备份数据库;
B.执行修复语句时报错提示:“未处理修复语句,数据库需处于单用户模式下。”
将数据库设置为单用户模式:SQL对象资源管理器/找到对应数据库AErp_HC/右击-属性/选项/状态限制访问做如下设置
设置好后,再次执行修复语句即可,修复后测试,发货单可正常保存。
分析
预计是日常服务器非正常断电、SQL进程异常终止或其他原因引起!最终完美解决~