免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1787 | 回复: 3
打印 上一主题 下一主题

[求助] 一个进程中查询表,另一个进程insert同一个表,有干扰么 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-28 22:36 |只看该作者 |倒序浏览
一个进程中,先是select count(列名)from t1 where col=。。。
有满足条件的记录存在,就一条;然后使用游标来fetch这条记录,同样的条件,却是notfound,
期间没有别的进程删除这个表中的数据;
同时只是有另一个进程在insert同一个表,时间上紧挨着,日志里就是这样的;
会是什么原因呢?
---------------
生产中出现的情况,以前据说也有过,但是一年也不会有几次,但现在又出现了。

论坛徽章:
0
2 [报告]
发表于 2012-07-28 22:40 |只看该作者
本帖最后由 gammareal 于 2012-07-28 22:52 编辑

12:48:52:693 SELECT count(*) from  t1 where 。。。(进程1,这是有记录)
期间没有改动此表的日志记录
--------------------------------
12:48:52:697 。。。SELECT first 1 UserId OperatorUserId。。。from  t1  where。。。(进程1,这时返回记录数为零,)
12:48:52:698 。。。INSERT INTO t1 。。。(进程2,)
---------------------------------
日志上看,时间就是这样子的。

补充:之后再次查询,数据库中确实是有这条数据,

论坛徽章:
2
15-16赛季CBA联赛之福建
日期:2016-01-12 14:22:3915-16赛季CBA联赛之山西
日期:2016-01-28 17:44:35
3 [报告]
发表于 2012-07-30 08:56 |只看该作者
查询的那条不是你插入的那条的话,这个就不是常规情况了!

论坛徽章:
0
4 [报告]
发表于 2012-07-30 21:36 |只看该作者
两次查询的where条件是相同的,是根据客户输入的流水号来查询的,客户输入的流水号被存储在程序中,两次查询都是使用的同一变量,流水号在表里是唯一的,不会重复;
事后查看数据库,流水号对应的记录是存在的,只有一条;
老的员工说,几年前就出现过这样的事情,但是 一直没有找到问题的原因,也无从解决,好在极少出现这种情况;日志里的提供的相关信息很少,生产上的代码又不允许随便改动,不能添加对更多的数据的输出。
要是有人解决过类似的问题就好了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP