博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【MOS】 Troubleshooting waits for enq: TX - allocate ITL entry(1472175.1)
阅读量:6936 次
发布时间:2019-06-27

本文共 5040 字,大约阅读时间需要 16 分钟。

Troubleshooting waits for 'enq: TX - allocate ITL entry' (文档 ID 1472175.1)

In this Document

 
 
 

APPLIES TO:

Oracle Database - Enterprise Edition - Version 10.2.0.1 and later
Information in this document applies to any platform.

SYMPTOMS

Observe high waits for event enq: TX - allocate ITL entry

Top 5 Timed Foreground EventsEvent                           Waits  Time(s)  Avg wait (ms)  % DB time  Wait Classenq: TX - allocate ITL entry    1,200   3,129           2607       85.22  ConfigurationDB CPU                                                   323        8.79gc buffer busy acquire         17,261      50              3        1.37  Clustergc cr block 2-way             143,108      48              0        1.32  Clustergc current block busy          10,631      46              4        1.24  Cluster

CAUSE

By default INITRANS value for table is 1 and for index is 2. This defines an internal block structure called the Interested Transaction List (ITL). In order to modify data in a block, a process needs to use an empty ITL slot to record that the transaction is interested in modifying some of the data in the block. If there are insufficient free ITL slots then new ones will be taken in the free space reserved in the block. If this runs out and too many concurrent DML transactions are competing for the same data block we observe contention against the following wait event - "enq: TX - allocate ITL entry".

You can see candidates for re-organisation due to ITL problems in the "Segments by ITL Waits"  section of an Automatic Workload Repository (AWR) report:

Segments by ITL Waits  * % of Capture shows % of ITL waits for each top segment compared  * with total ITL waits for all segments captured by the SnapshotOwner Tablespace Name Object Name Subobject Name Obj. Type       ITL  Waits % of CapturePIN   BRM_TABLES      SERVICE_T                  TABLE           188               84.30PIN   BRM_TABLES      BILLINFO_T  P_R_06202012   TABLE PARTITION  35               15.70

SOLUTION

The main solution to this issue is to increase the ITL capability of the table or index by re-creating it and altering the INITRANS or PCTFREE parameter to be able to handle more concurrent transactions. This in turn will help to reduce "enq: TX - allocate ITL entry" wait events.

To reduce enq: TX - allocate ITL entry" wait events, We need to follow the steps below:

Increase INITRANS

A)

1) Depending on the number of transactions in the table we need to alter the value of INITRANS. here it has been changed to 50:

alter tableINITRANS 50;

2) Then re-organize the table using move (alter table move;)
3) Then rebuild all the indexes of this table as below

alter index rebuild INITRANS 50;

Increase PCTFREE

If the issue is not resolved by increasing INITRANS then try increasing PCTFREE. Increasing PCTFREE holds more space back and so spreads the same number of rows over more blocks. This means that there are more ITL slots available overall :

B)

1) Spreading rows into more number of blocks will also helps to reduce this wait event.

alter table
  PCTFREE 40;

2) Then re-organize the table using move (alter table service_T move;)

3) Rebuild index

alter index index_name  rebuild PCTFREE 40;

A Combination of increasing both INITRANS and PCTFREE

1) Set INITRANS to 50 and  pct_free to 40

alter table PCTFREE 40  INITRANS 50;

2) Re-organize the table using move (alter table move;)
3) Then rebuild all the indexes of the table as below

alter index  rebuild PCTFREE 40 INITRANS 50;

NOTE: The table/index can be altered to set the new value for INITRANS. But the altered value takes effect for new blocks only. You need to rebuild the objects so that the blocks are initialized again.
For an index this means the index needs to be rebuild or recreated.
For a table this can be achieved through:
  • exp/imp
  • alter table move
  • dbms_redefenition

You can find information relating to other 'enq: TX - ...' variants in the following articles:

 Resolving Issues Where 'enq: TX - row lock contention' Waits are Occurring 
 Troubleshooting 'enq: TX - index contention' Waits in a RAC Environment. 
 Resolving Issues Where 'enq: TX - contention' Waits are Occurring

About Me

..........................................................................................................................................................................................................................................................................................................

● 本文来自于MOS转载文章,(文档 ID 1472175.1)

● 本文在itpub()、博客园()和个人微信公众号(xiaomaimiaolhr)上有同步更新

● QQ群:230161599  微信群:私聊

● 小麦苗分享的其它资料:

● 小麦苗云盘地址

● QQ群: 230161599   微信群:私聊

● 联系我请加QQ好友(642808185),注明添加缘由

●【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】

..........................................................................................................................................................................................................................................................................................................

手机长按下图识别二维码或微信客户端扫描下边的二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,免费学习最实用的数据库技术。

你可能感兴趣的文章
几何画板表现两集合的差集的教程
查看>>
Jmeter JDBC执行多条SQL
查看>>
iOS开发网络篇—多线程断点下载
查看>>
Beginning IOS 7 Development Exploring the IOS SDK - Handling Basic Interface Fun
查看>>
Java编程基础-运算符
查看>>
CSS3背景线性渐变
查看>>
C++基础——类继承
查看>>
转:不是技术牛人,如何拿到国内IT巨头的Offer
查看>>
Cocoapods安装使用
查看>>
wine 安装.netframework 2.0方法
查看>>
ArcEngine读取数据(数据访问)-转载
查看>>
python3.x的HTMLTestRunner.py文件
查看>>
POJ2391 Ombrophobic Bovines(网络流)(拆点)
查看>>
教程-MessageBox 使用方法
查看>>
信息安全系统设计基础第五周学习总结
查看>>
LINUX内核分析第八周总结:进程的切换和系统的一般执行过程
查看>>
实验一
查看>>
JavaWeb系列之:Servlet
查看>>
【转】java线程系列---Runnable和Thread的区别
查看>>
微信公众号开发之微信JSSDK
查看>>