Each datablock has a number of transaction entries that are used for row
locking purposes. Initially, this number is specified by the
INI_TRANS parameter; the default value (1 for tables, 2 for
indices) is generally sufficient. However: if a table (or index) is known to
have many rows for each block with a high possibility of many concurrent
updates, it is beneficial to set a higher value - which must be done at the
CREATE TABLE/CREATE INDEX time to have it set for all blocks
of the object.
So how do you know whether sone object needs adjustment here? Either your
planning and design of the database did foresee, or your performance report
gave you indications: if an object has either many buffer busy get s,
or is subject to TX enqueue waits , you have found a candidate for
adjustment.
Recommended values: |
[# of CPUs] <= INI_TRANS < 100 |
MAX_TRANS < 100 |
Side-Effects: |
If the value for either of these parameters is too high,
Oracle will use more space for the transaction layer block header
and less for the data layer variable header; this can result in more
I/O. |
|