我做的一程序,在几个地区使用都很正常,但到一个地区却遇到了怪问题:
一个模块中在一个事物处理流程中修改的几个表,有的修改了有的却没修改。
大致情况是这样:
一主文件a存款一笔,修改主文件余额后生成历史文件.连续录入时会有这种结果:
a=100 分三次存款100后(连续录入,在一个界面中)
生成了三笔历史
日期 老余额 发生额 新余额
10/8 100 100 200
10/8 200 100 300
10/8 300 100 400
但录入完后发现a的余额又变回100了!
如果是发生了rollback事件那应该也不会产生这三笔历史交易的呀!
我把数据拷到自己手提上试从未发生过此情况!
发生此问题后从新装过nt+sqlserver,排除病毒的情况!
我现在能想到的是log文件太大了。.mdf 3M多,.ldf已经有37M了。
做过backup log后,log不减少。我怀疑是这个log乱套了。
客户已经对我们老出这问题产生怀疑了兄弟们救救俺吧!
btw
问题已经产生了怎么去分析这个log呢?
一个模块中在一个事物处理流程中修改的几个表,有的修改了有的却没修改。
大致情况是这样:
一主文件a存款一笔,修改主文件余额后生成历史文件.连续录入时会有这种结果:
a=100 分三次存款100后(连续录入,在一个界面中)
生成了三笔历史
日期 老余额 发生额 新余额
10/8 100 100 200
10/8 200 100 300
10/8 300 100 400
但录入完后发现a的余额又变回100了!
如果是发生了rollback事件那应该也不会产生这三笔历史交易的呀!
我把数据拷到自己手提上试从未发生过此情况!
发生此问题后从新装过nt+sqlserver,排除病毒的情况!
我现在能想到的是log文件太大了。.mdf 3M多,.ldf已经有37M了。
做过backup log后,log不减少。我怀疑是这个log乱套了。
客户已经对我们老出这问题产生怀疑了兄弟们救救俺吧!
btw
问题已经产生了怎么去分析这个log呢?
解决方案 »
- SQL复杂查询,两个表都是要有条件的
- 求SQL语句
- ???关于触发器的一个小问题???
- 一个 统计 查询问题,
- windows server 2003+SQL SERVER 2005,性能监视中缺少SQL相关的性能对象
- 问下数据库中怎么把1989-03-28转化成1989年3月28日
- 这样的SQL语句怎样写?请各位大大快快点帮忙!
- 一个很菜的问题---SQL SERVER里面的--除--是用哪个符号?(不是整除)
- 请问在储存过程中参数@和@@有什么区别??
- 为什么我用事件探查器跟踪存储过程经常莫名其妙地中断,提示“跟踪失败”?
- 关于SQL SERVER ,盼复!谢谢!
- 各位高手,能否帮想一下这样的库该怎样建(急)
2、没看清数据是不是存入数据库了。
3、有可能日志文件满了,插入新记录的操作不能完成,但程序中没有捕获这个错误,认为记录已经保存。你试一下将日志截断后再试。
4、可以用profiler跟踪一下,看保存这三条记录时的语句,及执行情况。可能比较好找出原因。
2.当时每输完一笔后没注意去看数据库,但从每笔历史得到了正确的老余额看,当时主文件应该也修改了;
3.日志文件我准备del重来;程序对每一个数据库操作的语句都做了错误捕获。
4.今天用profiler跟踪一天,看结果如何。