re: find dirty blocks/records; 9.2.0.7

  • From: Cosmin Ioan <cosmini@xxxxxxxxxxxxxxx>
  • To: oracle-l@xxxxxxxxxxxxx
  • Date: Mon, 14 May 2007 07:30:59 -0700 (PDT)

hi all,
  I'm working on a (telecom) high transactional system where many individual 
records could be in a dirty state (updated/deleted but not commited until a 
later time, possibly minutes or more).  It is possible that on occasion, we 
need to run  batch processes on bulk records, say millions or more.
   
  While we're trying to limit this large processing at off-peak hours -- to 
limit contention with production, I was wondering if there is any way to 
identify the dirty blocks/records so that we can re-visit them later for 
processing.  Unfortunately, there is no one process that may update these 
individual records and as such a flag can be set, so I need to go to the 
database level, to the dictionary and get my dirty records.  
   
  Theoretically, it seems to me that perhaps the fastest way to do this is via 
BULK/FORALL statements as this technique will allow for individual records 
exception (due to locking or others), rather than simple SQL set based updates 
which could  likely generate row and even table level locking?  Am I going 
about it the right way?  
   
  thx much,
  Cosmin

Other related posts:

  • » re: find dirty blocks/records; 9.2.0.7