多批次并行,经常出现死锁,求指点。

各位专家大神们!    您好!               我现在的情况是有对多个来源系统数据进行处理,例如:3G、2G等十几个来源系统。采取的是多批次并行的处理方式,程序中大量的SELECT、INSERT和少量的UPDATE操作,由于各个系...显示全部
各位专家大神们!
    您好!      
         

我现在的情况是有对多个来源系统数据进行处理,例如:3G、2G等十几个来源系统。采取的是多批次并行的处理方式,程序中大量的SELECT、INSERT和少量的UPDATE操作,由于各个系统数据量的不同,即使同时跑批,到后面可能处理的相同的表有不同的操作,例如:同时对一个表多次INSERT和SELECT,甚至是UPDATE。我现在的操作如下:


        1.在SELECT 时加入了UR。
        2.基本上在每个事务上都加了COMMIT。
        3.根据IBM的专家建议调整了数据库的死锁参数和DB2_EVALUNCOMMITED、DB2_SKIPINSERTED、DB2_SKIPDELETED3个参数。
        虽然现在的死锁概率大大减少了,但是还是会出现死锁的现象:-911,2,400001,而且出现死锁的地方没有规律性。
        请问各位专家大神们,有什么好的建议,能够尽量的避免死锁。
                                                                              谢谢!收起
参与17

查看其它 15 个回答zhugfang的回答

zhugfangzhugfang软件开发工程师杭州信雅达
尽量使用外连接加工临时表,最后插入目标表,来减少update的几率
互联网服务 · 2014-04-30
浏览1796

回答者

zhugfang
软件开发工程师杭州信雅达

zhugfang 最近回答过的问题

回答状态

  • 发布时间:2014-04-30
  • 关注会员:1 人
  • 回答浏览:1796
  • X社区推广