您好、欢迎来到现金彩票网!
当前位置:秒速快3 > 数据相关冲突 >

采用多线程对数据库读写引发冲突

发布时间:2019-07-03 02:57 来源:未知 编辑:admin

  数据库里存了几百台系统信息,要定时从数据库查询系统列表,连接到每台系统,采集一些数据,然后把采集到的数据再存到数据库中,便于日后查询。因为系统数量庞大,所以采用的是多线程...

  数据库里存了几百台系统信息,要定时从数据库查询系统列表,连接到每台系统,采集一些数据,然后把采集到的数据再存到数据库中,便于日后查询。

  因为系统数量庞大,所以采用的是多线程操作,这样可以提高采集数据的速度。但问题就在于收集到数据以后插入数据库时发生冲突,因为常常多个进程都想要把自己的数据插入,而且是插入同一个表,但只有一个进程能真正取得写入权(个人猜测是因为insert的时候数据库自动把表给lock了?),因此导致其他进程的数据没法写入而丢失。

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部我只说oracle的吧,insert的时候一般是会加行级写锁,一般不会升级到表级锁,多个线程之间处理的数据是否存在抢占了呢?如果是单纯的insert into 不同的信息是不会冲突的追问你好,能不能解释下“抢占”?比如,抢占的是什么?为什么会抢占?其实我不是100%肯定是不是insert的原因,现在的情况是,数据库里有200台系统,但最后查询后插入的只有120条信息,其他80台的信息丢失了。而我可以100%确定信息获取无误 (命令程序输出sql insert语句,语句正确),就是在之后执行sql_command(sql)时出现了问题。

http://talkingwithjon.com/shujuxiangguanchongtu/403.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有