生产环境,经常出现大面积锁表,请问有什么好的解决方法?

生产环境,经常出现大面积锁表,业务收到严重影响数据库db2, -911,有什么好的解决方法?显示全部

生产环境,经常出现大面积锁表,业务收到严重影响
数据库db2, -911,有什么好的解决方法?

收起
参与23

查看其它 4 个回答atpeace331的回答

atpeace331atpeace331  数据库管理员 , 银行

你们那边 DB2 是哪个版本的? DB2 v9.7以后,Currently Commited功能是默认开启的,可以避免大量的读写事务并发导致的锁等问题。

你这个问题,建议从两方面入手:
1、查看生产数据库监控,看看锁资源是否充足,锁的相关数据库配置是否合理(LOCKLIST、MAXLOCKS、LOCKTIMEOUT等)看看db2diag.log 是否经常出现锁升级现象。

2、排查锁等事件中参与的并发应用,看看是否存在下面问题:
并发应用之间的执行顺序是否合理?
并发应用的隔离级别是否设置合理(注意,大多数应用中间件的隔离级别默认是 RS)?
持有锁事务是否业务逻辑过于复杂、执行时间过长,占用大量的锁资源太长时间?
并发应用中,涉及的游标应该尽快关闭,不要使用模糊游标!
并发应用的 SQL是否可以优化,避免访问不必要的数据?
并发应用的 SQL 是否有效地使用了索引?

我想到的,目前就这么多,其他思路,社区其他高手多多补充吧

银行 · 2019-11-27
浏览3468
liuyh 邀答
  • 非常感谢了,并发应用的隔离级别是否设置合理这一条,将设置了was的隔离机制,问题得到了有效的解决。
    2020-01-02

回答者

atpeace331
数据库管理员银行

atpeace331 最近回答过的问题

回答状态

  • 发布时间:2019-11-27
  • 关注会员:5 人
  • 回答浏览:3468
  • X社区推广