Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Query for used blocks in a table

Re: Query for used blocks in a table

From: Christian Antognini <christian.antognini_at_trivadis.com>
Date: Wed, 29 Sep 2004 16:30:23 +0200
Message-ID: <415ac6fc@post.usenet.com>

"Lars Erik Petersen" <lap_at_orkfin.no> wrote in message news:AJy6d.258$ZG9.170427392_at_news.telia.no...
> Hi!
>
> I'm running the following query to list the tables in question:
>
> SELECT a.owner, a.segment_name
> FROM dba_segments a, dba_tables b
> WHERE a.owner ='SCDAT'
> AND a.segment_type = 'TABLE'
> AND a.segment_name = b.table_name
> AND a.owner = b.owner
> GROUP BY a.owner, a.segment_name
>
> For each of the tables returned by the query, I want to do another query:
>
> SELECT COUNT(DISTINCT(SUBSTR(ROWID,1,8) || SUBSTR(ROWID,15,4))) FROM
{table}
>
> (where {table} is the table name as returned by the query above)
>
> I doubt I can do this in a single query, but could someone please give a
> hint as to how I could do it in a PL/SQL script?
>
> What I originally wanted was to use this query in OEM and create a report
> (report definitions) to see only used blocks in an table, and not
allocated.
> Is this possible?
>
>
> Regards,
> Lars Erik Petersen

Hi Lars

In case of chained/migrated rows you will miss some blocks with a query on the ROWID. I don't know what are you trying to do... anyway in my opinion you should consider used each block under the high-water mark

Chris

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Received on Wed Sep 29 2004 - 09:30:23 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US