Re: how to get all ROWIDs from a table (without selecting it)?

  • From: "Martin Berger" <martin.a.berger@xxxxxxxxx>
  • To: "Jared Still" <jkstill@xxxxxxxxx>
  • Date: Tue, 23 Dec 2008 08:55:20 +0100

Jared,

You can certainly generate possible ROWID values for a table, but how will
> you know
> if there is actually a row in the block for the ROWID unless you do a
> select on the table?
>

that was exactly my question. ;-)
In the meantime I accepted there will be no information stored within the
SGA about the different available row-numbers of a given block.
Based on the fact the smallest ganularity a RDBMS reads is a Block, I cannot
imagine any subsystem which would benefit from holding row-information
available; so it makes sense NOT to cache it anywhere.


Apart from dumping the block and examining the row directory in the header
> that is.
> If you want to do that, I think it's been documented a few times, and
> google should
> find it.  I can't recall the details of doing so.
>

I did this for some dedicated blocks to lern more about it's structure (and
ROWIDs), but this is not useful for a generic 'load any block into
buffer_cache'. For this purpose it's also not needed, as we are talking
about blocks again (in buffer_cache) and not rows.

thank you for your answers and effort,
 Martin

Other related posts: