Doubt related do INITRANS

  • From: Eriovaldo Andrietta <ecandrietta@xxxxxxxxx>
  • To: ORACLE-L <oracle-l@xxxxxxxxxxxxx>
  • Date: Wed, 16 Dec 2020 17:46:20 -0300

Hi,

I saw in the database and documentation that For tables INITRANS is equal
to *1* and for indexes, 2.

Doubts are :

a.) for indexes, We always must use the number used by table * 2 ??

b.) Imagine that I have an initrans 10 for a table and 20 for indexes of
this table (the table can have  one or more than one ).
     And an applicationI execute select for update for 1 line in different
sessions , like this, with purpose to retrieve a number
          select number_seq into seq from table_a where id = 10 for update;
          commit;
     It causes a lock. This table works like a database sequence.
     Think in simultaneous connections and a lot of transactions.
     When the commit is executed , the lock is released.

     Doubts here are :

     b1.) What is the advantage to configure initrans equal to 10 and
indexes equal to 20 for this table  ???
     b2.) What is different in this case doing commit line by line if I had
INITRANS equal 1 for table and 2 for indexes ?

Regards
Eriovaldo

Other related posts: