Call now: 252-767-6166  
Oracle Training Oracle Support Development Oracle Apps

 
 Home
 E-mail Us
 Oracle Articles
New Oracle Articles


 Oracle Training
 Oracle Tips

 Oracle Forum
 Class Catalog


 Remote DBA
 Oracle Tuning
 Emergency 911
 RAC Support
 Apps Support
 Analysis
 Design
 Implementation
 Oracle Support


 SQL Tuning
 Security

 Oracle UNIX
 Oracle Linux
 Monitoring
 Remote s
upport
 Remote plans
 Remote
services
 Application Server

 Applications
 Oracle Forms
 Oracle Portal
 App Upgrades
 SQL Server
 Oracle Concepts
 Software Support

 Remote S
upport  
 Development  

 Implementation


 Consulting Staff
 Consulting Prices
 Help Wanted!

 


 Oracle Posters
 Oracle Books

 Oracle Scripts
 Ion
 Excel-DB  

Don Burleson Blog 


 

 

 


 

 

 
 


Insufficient ITL Slots Tips

Expert Oracle Database Tips by Donald BurlesonMarch 22, 2015

Detecting Insufficient ITL Slots

Oracle keeps track of rows that are locked per transaction in a storage area at the top of each data block called the Interested Transaction List (ITL). Two parameters, initrans and maxtrans, control the number of ITL slots in any block for an object within Oracle.

Iitrans contains the total number of slots initially created in an Oracle database block when it is first used. The maxtrans parameter sets the upper bound for the total number of entries allowed within the interested transaction list for the block. As such, each transaction that plans to modify a database block will require a new slot in the ITL list contained within the block. The maxtrans parameter also sets the upper limit for the number of concurrent transactions that may be active at any single point in time within an Oracle database block.

The initrans parameter also grants the minimum concurrency set per block. If the value is greater for initrans but less than the values available for maxtrans for transactions that are active concurrently within the same block, then the ITL list will be further extended. However, space must be available within the database block for the ITL list to be expanded.

If there are no more free ITL lists available, then the requesting session will wait on one of the active transaction locks to complete its transaction. How ITL works with database locking can be investigated by using the following example:

Session 1:

SQL> update txns set txt='Garbage' where num=1;

   1 row updated.

Session 2:

SQL> update lab.txns set txt='Junkers' where num=2;

   1 row updated.

Now examine the locks held, if any:

SQL> select sid, type, id1, id2, lmode, request
  2  from v$lock
  3  where type='TX';

       SID TY        ID1        ID2      LMODE    REQUEST
---------- -- ---------- ---------- ---------- ----------
       137 TX     589844        821          6          0
       134 TX     196613        705          6          0
       138 TX     393217        702          6          0

If there was a lock issue, the REQUEST column would display a value and the correlated SID column would be the session waiting for the lock.

One can check the ITL waits by querying the v$segment_statistics dynamic performance view as shown in the following example.

SQL> desc v$segment_statistics

    Name                                      Null?    Type
    ----------------------------------------- -------- --------------- 
    OWNER                                              VARCHAR2(30)
    OBJECT_NAME                                        VARCHAR2(30)
    SUBOBJECT_NAME                                     VARCHAR2(30)
    TABLESPACE_NAME                                    VARCHAR2(30)
    TS#                                                NUMBER
    OBJ#                                               NUMBER
    DATAOBJ#                                           NUMBER
    OBJECT_TYPE                                        VARCHAR2(18)
    STATISTIC_NAME                                     VARCHAR2(64)
    STATISTIC#                                         NUMBER
    VALUE                                              NUMBER

 

select
   t.owner,
   t.object_name,
   t.object_type,
   t.statistic_name,
   t.value
from
   v$segment_statistics t
where
   t.statistic_name='ITL waits'
and
   t.value>0;

If there were any ITL related waits, the above query would return the details.


 

 
 
 
Frustrated by the Hidden or Undocumented Features of Oracle? 

The landmark book "Exploring Oracle Internals: Tips and Tricks for the Oracle DBA"  will take you far beyond the standard features of the Oracle database into the hidden and undocumented realms formerly reserved for Oracle insiders.  You will discover valuable tips and tricks for mastering your Oracle database, and you can buy it for 30% off directly from the publisher.
 


 

 

Burleson is the American Team

Note: This Oracle documentation was created as a support and Oracle training reference for use by our DBA performance tuning consulting professionals.  Feel free to ask questions on our Oracle forum.

Verify experience! Anyone considering using the services of an Oracle support expert should independently investigate their credentials and experience, and not rely on advertisements and self-proclaimed expertise. All legitimate Oracle experts publish their Oracle qualifications.

Errata?  Oracle technology is changing and we strive to update our BC Oracle support information.  If you find an error or have a suggestion for improving our content, we would appreciate your feedback.  Just  e-mail:  

and include the URL for the page.


                    









Burleson Consulting

The Oracle of Database Support

Oracle Performance Tuning

Remote DBA Services


 

Copyright © 1996 -  2020

All rights reserved by Burleson

Oracle ® is the registered trademark of Oracle Corporation.

 

 

��  
 
 
Oracle Training at Sea
 
 
 
 
oracle dba poster
 

 
Follow us on Twitter 
 
Oracle performance tuning software 
 
Oracle Linux poster