Datastage如何在执行update语句前给目标表加表锁

环境:Datastage、db2、Linux。
由于在往目标表插入数据执行需要执行update语句,数据量比较大,加上并发job执行,容易行锁升级表锁失败。所以我想在update语句之前,手动加表锁。
查询到表锁的语句为 lock table 表名 in share mode。可写了之后没有作用,感觉它在执行update语句之前就自动提交了。
有人指出说要用动态sql(EXECUTE  'lock table DEADTABLE in share mode';),可以执行会报错,好像不识别。
求解决,谢谢!
参与3

2同行回答

BreezeBreeze大数据工程师保险集团
这样设置就可以了。before sql:lock table DEADTABLE in exclusive mode;update DEADTABLE set c1='3';Transaction->Record count=0Session->Auto commit mode=off显示全部
这样设置就可以了。

before sql:
lock table DEADTABLE in exclusive mode;
update DEADTABLE set c1='3';

Transaction->Record count=0
Session->Auto commit mode=off收起
保险 · 2014-03-07
浏览773
BreezeBreeze大数据工程师保险集团
lock table DEADTABLE in exclusive mode;update DEADTABLE set c1='5';这样在DbVisualizer里执行的话,只申请一个排它锁;但写在Datastage的before sql里的话,还是会申请很多排他锁。感觉Datastage在执行完lock table语句之后,马上就commit了。怎么设置可以达到不提交的效果?...显示全部
lock table DEADTABLE in exclusive mode;
update DEADTABLE set c1='5';

这样在DbVisualizer里执行的话,只申请一个排它锁;
但写在Datastage的before sql里的话,还是会申请很多排他锁。
感觉Datastage在执行完lock table语句之后,马上就commit了。
怎么设置可以达到不提交的效果?收起
保险 · 2014-03-07
浏览812

提问者

Breeze
大数据工程师保险集团
擅长领域: 大数据容器云计算

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2014-03-07
  • 关注会员:1 人
  • 问题浏览:2377
  • 最近回答:2014-03-07
  • X社区推广