Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2139891
  • 博文数量: 157
  • 博客积分: 10047
  • 博客等级: 上将
  • 技术积分: 6757
  • 用 户 组: 普通用户
  • 注册时间: 2005-05-19 11:38
文章分类

全部博文(157)

文章存档

2011年(16)

2010年(50)

2009年(42)

2008年(49)

我的朋友

分类: Oracle

2009-07-24 11:40:22

环境两节点RAC ORACLE 10.2.03
做AWR检查发现某一时间点出现如下等待事件
enq: TX - allocate ITL entry          3,612       1,761    488   57.6 Configurat
enq: TX - row lock contention           661         322    487   10.5 Applicatio

结合SQL执行情况分析得到如下sql导致的
update Task set version=:1, CALLBACK_DELAY_TIME=:2, commitDate=:3, CREATOR_ID=:4
, feedbackLastTaskUrl=:5, lastModify=:6, returnMessage=:7, status=:8, STRATEGY_I
D=:9, TASK_HIERARCHY=:10, taskType=:11, tmTaskId=:12 where id=:13 and version=:14

查看执行计划并没有异常,并且ID为主键


关于什么是ITL、ITL锁是如何产生的
http://space.itpub.net/35489/viewspace-85145
http://hi.baidu.com/numbed/blog/item/a5a43f81b538ddddbc3e1e37.html

当initrans <=2时 Itl slot默认为2,当initrans>2时,itl slot=initrans
initrans 可以进行动态修改,但是修改的只对新数据块有效,对老的已经使用过了的数据块不生效
maxtrans 控制可以使用的最大itl slot数量,前提是有足够的pctfree空间来保证,
当默认itl slot不够用时,可以在pctfree剩余空间中进行扩展使用。
解决该问题有以下几种方法:
1、调整应用程序
2、增大pctfree
3、增大initrans
阅读(2044) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~