I'm not sure if this is any help:
--block_e_byte.sql
/*
The Oracle blocks used by a given table and the corresponding bytes.
*/
--Inspired by a posting by [EMAIL PROTECTED] on ORACLE-L
--Requires one parameter, the table name.
SELECT COUNT (DISTINCT
DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid)||
DBMS_ROWID.ROWID_RELATIVE_FNO(rowid))
"Blocks Used" FROM &&1;
SELECT COUNT (DISTINCT
DBMS_ROWID.ROWID_BLOCK_NUMBER(a.rowid)||
DBMS_ROWID.ROWID_RELATIVE_FNO(a.rowid))
* b.value
"Bytes Used" FROM &&1 a, v$parameter b where name = 'db_block_size'
group by b.value;

There should be some way to decode rowid to tell you which blocks are used
in a given extent --- I just don't have the time or resources to do it
right now.



                                                                                       
                                                
                      DENNIS WILLIAMS                                                  
                                                
                      <DWILLIAMS               To:      Multiple recipients of list 
ORACLE-L <[EMAIL PROTECTED]>                    
                      @LIFETOUCH.COM>          cc:                                     
                                                
                      Sent by: root            Subject: RE: Space Remaining in Current 
Extent                                          
                                                                                       
                                                
                                                                                       
                                                
                      05/27/2003 03:39                                                 
                                                
                      PM                                                               
                                                
                      Please respond                                                   
                                                
                      to ORACLE-L                                                      
                                                
                                                                                       
                                                
                                                                                       
                                                




Kevin - Since you haven't received any replies, here goes.
Within an extent, Oracle uses blocks. I haven't seen a way to find the used
space within a block. There are methods to find the number of empty blocks
underneath the high water mark. Analyze does that, but you've ruled that
out. It might help if you could explain what you are trying to accomplish.
Other ideas are:
  - Write a program that will scan the table, read each row and count the
bytes as it reads it. This would be very accurate, but time-consuming.
  - An approximate answer could be arrived at by doing an analyze and
getting average row length. This shouldn't change much unless some
operation
is performed that would alter that. Then by getting the number of rows in
the table you could get a very close estimate of the table size at any
time.

Dennis Williams
DBA, 80%OCP, 100% DBA
Lifetouch, Inc.
[EMAIL PROTECTED]


-----Original Message-----
Sent: Tuesday, May 27, 2003 11:15 AM
To: Multiple recipients of list ORACLE-L


Hey guys;
  Does anyone know where I can look to find the space remaining in an
individual extent ??  I know that you can get the freespace from
dba_free_space but that seems to be based only on unallocated extents.  I
have been asked to find out, down to the byte, how much free space is
available ..... on the fly (which means not only after every analyze)

Any suggestions ??? I  am sure Oracle has a table with the information
somewhere .

Thanks

Kevin
--
Please see the official ORACLE-L FAQ: http://www.orafaq.net
--
Author: Kevin Lange
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
--
Please see the official ORACLE-L FAQ: http://www.orafaq.net
--
Author: DENNIS WILLIAMS
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).






-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Thomas Day
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to