RE: Who is using my datafile

From: Powell, Mark D <>
Date: Wed, 9 Jul 2008 09:32:49 -0400
Message-ID: <>


If a tablespace has multiple datafiles then an object segment may exist in multiple files and the segment header could be in any of the files so your query may not return a hit in cases where the segment spans multiple files.

DBA_SEGEMENTS has an entry which summarizes the space allocation for all objects that have physical segments.

DBA_EXTENTS on the other hand has an entry for every extent allocated to an object. The extents for an object may span files.

  • Mark D Powell -- Phone (313) 592-5148

-----Original Message-----
[] On Behalf Of Yechiel Adar Sent: Wednesday, July 09, 2008 2:27 AM
Subject: Re: Who is using my datafile

I am a little confused here.

I thought that dba_segments contain information about space allocated to objects and dba_extents contain the information about the space allocation within each segments.
Now I find that:
select * from dba_segments where header_file = 7; return no rows while: select * from dba_extents where file_id = 7; return some rows.

So, I am switching to check dba_extents to clear space in datafiles.

What is the purpose of dba_segments?

Adar Yechiel
Rechovot, Israel

Yechiel Adar wrote:
> I have a RAC on windows.
> Oracle 9206.
> I have five datafiles that have nothing in them.
> I mean that select * from sys.seg$ where file# between 6 and 11 return

> nothing.
> When I tried to decrease the size of the datafiles I got: the file
> contain data beyond the space I want to decrease to.
> I thought that maybe there are some temporary segments but all the
> users use temp as their temporary tablespace.


Received on Wed Jul 09 2008 - 08:32:49 CDT

Original text of this message