首页 新闻 会员 周边

MSSQL2005 诡异的新增记录丢失的问题

0
悬赏园豆:60 [已解决问题] 解决于 2015-03-02 19:42

Window2008R2企业版 +MSSQL2005 64位 只安装sp4补丁

情况如下

步骤1

首先先插入表WorkToDo

 

然后插入表WorkPrcs

 

步骤2

修改表WorkToDo 的修改JieDianID  字段改成973

 

然后修改表WorkPrcs 的PrcsFlag字段 改成3

 

新增记录 一条或者三四条

 

大约几分钟 或几小时不等 大约十分之一的几率 55766 55767失踪.消失前是能够看到的,步骤2中更新的记录正常.

步骤2可能会执行几次,如果记录消失的话,还是只有第一次增加的记录

事后查询

结果是这样的

 

 

1在线开启SQL Server Profiler 追踪不到删除的SQL语句,没有死锁

2程序中没有删除的语句

3步骤二启用事务 (修改+添加)操作,添加的还是消失了,修改的记录保持

出现几率大增,约50%

4重新创建表WorkPrcs,复制原有数据,一天后问题依旧

 

奇怪的是表WorkPrcs,每次第一次插入的记录存在

问题补充:

log explorer 中看到有删除的记录 旁边的user_transaction 是指因为事物而删除么?

dd102的主页 dd102 | 初学一级 | 园豆:17
提问于:2015-02-14 23:48
< >
分享
最佳答案
0

检查一下有没有触发器,如果没有就写一个删除的触发器,记录一下操作时间,然后看这个时间点系统在干啥。

收获园豆:30
清海扬波 | 小虾三级 |园豆:825 | 2015-02-26 15:19

这个可以试试

dd102 | 园豆:17 (初学一级) | 2015-02-26 20:03

开启触发器后看到了惹祸的语句...应该早点弄触发器的.一开始 用SQL Server Profiler 追踪不到删除的SQL语句,就认为不是sql语句的问题..走了弯路

dd102 | 园豆:17 (初学一级) | 2015-03-02 19:41
其他回答(2)
0

你是使用的 Sql Managerment Studio 做的你如图的操作吗?

收获园豆:20
Launcher | 园豆:45045 (高人七级) | 2015-02-15 09:41

是的

支持(0) 反对(0) dd102 | 园豆:17 (初学一级) | 2015-02-15 09:57

@dd102: 你新建个库,然后新建这两张表,按照这个流程再测试下。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2015-02-15 10:53

@Launcher: 我在擦入表WorkPrcs 的同时,将相同的记录插入表ss,发现 表ss的记录没有丢失

支持(0) 反对(0) dd102 | 园豆:17 (初学一级) | 2015-02-15 11:03

@dd102: 你新建个库,然后新建这两张表,按照这个流程再测试下。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2015-02-15 11:08
0

你的程序是多线程程序吧,数据并发时自增列会出问题,然后就回滚了

收获园豆:10
ZQT | 园豆:107 (初学一级) | 2015-02-15 15:57

是web网站,自增列会有问题么?

支持(0) 反对(0) dd102 | 园豆:17 (初学一级) | 2015-02-15 19:33

@dd102: web站点会出现数据并发,自增列不适合出现在数据插入频繁的表中

支持(0) 反对(0) ZQT | 园豆:107 (初学一级) | 2015-02-16 08:37

@ZQT: 那天8小时总共才插入了100条记录,有问题的约20条,并发很少的,后来在自己电脑用Selenium模拟操作,插了三千多条..一切正常

支持(0) 反对(0) dd102 | 园豆:17 (初学一级) | 2015-02-25 20:55

@ZQT: 写了个测试页 表WorkPrcs插入记录,两个电脑多线程并发访问 30S内2w个请求..一个都没有错

支持(0) 反对(0) dd102 | 园豆:17 (初学一级) | 2015-02-26 20:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册