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

From: Martin Berger <martin.a.berger_at_gmail.com>
Date: Tue, 23 Dec 2008 08:55:20 +0100
Message-ID: <cd8f74560812222355s137f25ffs6461af2ab0633775@mail.gmail.com>


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

--
http://www.freelists.org/webpage/oracle-l
Received on Tue Dec 23 2008 - 01:55:20 CST

Original text of this message