软件开发DB2 update 锁

DB2 update语句卡住不动?

应用程序执行一条update语句,表数据2731行update table set STEP_STATUS=0, BEGIN_TIME='', FINISH_TIME='' where cola ='PLAN-0-74-0-20200331005054-OCC-1' and colb=13然后一直卡住,表可以查询这条数据,如果再执行一次也是卡住,db2diag.log 没有报异常,没有锁表。日志报...显示全部

应用程序执行一条update语句,表数据2731行

update table set STEP_STATUS=0, BEGIN_TIME='', FINISH_TIME='' where cola ='PLAN-0-74-0-20200331005054-OCC-1' and colb=13

然后一直卡住,表可以查询这条数据,如果再执行一次也是卡住,db2diag.log 没有报异常,没有锁表。

日志报的这个不知道算不算异常
Locking memory management: GLM-memory low.
SP threshold activated.
GLM-lock list size = 33275244
GLM-lock list available = 5364654

收起
参与10

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

atpeace331atpeace331数据库管理员银行

看了下您问题的描述,你们的环境使用的 DB2 pureScale 。

db2pd -d <dbname> -cfdump struct=glm

如果你们已经排除 update 时的 “锁等” 问题,看您提供的信息,我很怀疑是本地锁管理器 LLM 向 CF 的全局锁管理器 GLM 申请 “物理锁”时,GLM 内存资源有限导致的问题,先试一试调大  CF_DB_MEM_SZ 内存中的  cf_lock_sz ,或者根据性能测试结果,决定考虑是否启用 CF内存自调整功能。

如果不是 cf 内存设置的问题,建议加强 CF 的监控数据收集,可以使用  MON_GET_CF_CMD() 、 MON_GET_CF_WAIT_TIME () 等表函数或者成熟的监控软件进行监控,根据监控进一步确定问题。

银行 · 2020-04-02
浏览3010
liaogzhu 邀答

回答者

atpeace331
数据库管理员银行

atpeace331 最近回答过的问题

回答状态

  • 发布时间:2020-04-02
  • 关注会员:6 人
  • 回答浏览:3010
  • X社区推广