Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: enq: TX - index contention

RE: enq: TX - index contention

From: Hollis, Les <>
Date: Tue, 22 Mar 2005 12:54:36 -0600
Message-ID: <>

Let me add something here...

YES, you get 2 ITL's when you create the table...but you ONLY get ONE per datablock so your select ini_trans does read one and a trace dump would give you one per every block allocated to the segment/table. =20

On a newly created table like my JUNKY1 or Mark Powell's MARKDATA, you WILL get 2 ITL's because of the 2 blocks initially allocated

Remember the ITL IS per datablock....NOT per segment

-----Original Message-----

From: Hollis, Les=20
Sent: Tuesday, March 22, 2005 12:50 PM
To: ''
Cc: Powell, Mark D; Subject: RE: enq: TX - index contention

OK cut from the very document you referred me to states =20

A transaction, which modifies a record in the datablock, must get an ITL slot in that datablock. The number of ITL slots in a datablock is defined by the INITRANS (which defaults 1 for data blocks and 2 for index blocks) and MAXTRANS.

So, what I said earler coincides with the web page you referred me to.

Oracle creates a table with a DEFAULT 2 datablocks.

Oracle creates an index with a DEFAULT 5 datablocks

Based on your setting (OR lack thereof) for inittrans in your create statement, Oracle will allocate 1 inittrans (ITL) for each BLOCK in the segment. Default or NO entry will give you ONE inittrans for EACH BLOCK and I will repeat here that AGAIN by default you get 2 blocks for a create table statement unless you specify a bigger initial size and or are using Locally Managed Tablespaces (so there is no confusion as to what I meant by LMT)

So, what I am saying is agreement with the URL I pasted to me.

Which means that again the documentation is right.

-----Original Message-----

[] On Behalf Of K Gopalakrishnan Sent: Tuesday, March 22, 2005 12:35 PM
To: Hollis, Les
Cc: Powell, Mark D; Subject: Re: enq: TX - index contention


I think you are totally confused here. ITLs work at block level. Not at segment level. Just for your understanding about ITLs and Datablocks /transactions have a look at this note.


Best Regards,
K Gopalakrishnan=20
Co-Author: Oracle Wait Interface, Oracle Press 2004

-- Received on Tue Mar 22 2005 - 13:55:37 CST

Original text of this message