Ajay,
Locking is row-level, but ITLs are block-level. So, in order to delete
row 3 from a block where row 1 may have been updated, Oracle would need
to create a read-consistent image of that block (which may require
reading UNDO from wherever it was generated) in order to complete the
delete you're requesting. Until the block is "rolled back" to create
the read-consistent image, Oracle wouldn't know if the change affected
the row you're trying to delete or not.
Someone correct me if I'm wrong please.
Dan
Ajay Thotangare wrote:
I am deleting from a table "TABLEA" from node1. At the
same time also inserting records in same table from Node2. Session on
Node2 are waiting on "gc buffer busy" wait. P1 value points to Undo of
Node1.
TABLEA is a huge table and delete takes long time. Its not a
partitioned table but has about 28 million records. delete operation
will delete about 200K records.I am committing at the end of delete
operation.
Any idea why my inserts are waiting on Undo block of Node1 ? moreover
all sessions waits on same block. All sessions points to same undo file
and same undo block.
what can be done in this case to resolve the problem?
Any help appreciated
|
--
//www.freelists.org/webpage/oracle-l
|