Re: datafiles space allocation algorithm

  • From: amonte <ax.mount@xxxxxxxxx>
  • To: mwf@xxxxxxxx
  • Date: Fri, 6 Oct 2006 12:39:25 +0200

Hi

I used import.

the main reason I am worrying how Oracle allocate space is I have created 8
filesystems for a new database, I have created 8 tablespaces, each with 8
datafiles spread in 8 filesystems. I have 200GB in each filesystem. The
problem is I have not been able to import suucessfulyl ever, filesystem
allocates spaces randomly and some of them always grows much faster and one
would reach 100% and causing error in my import session

thanks

Alex


On 10/6/06, Mark W. Farnham <mwf@xxxxxxxx> wrote:

What manner of technology was the load? How many rows?



With the answers to those questions and a query including the file numbers
for the datafiles and another with the rowid broken into the useful pieces
and another adding up vsize(column_name) for each column in the table, plus
an assurance that you don't have any columns that might be stored "out of
line", we can answer your question. (Or the answer will become obvious to
you as the query result spills out.)



Computing statistics on the table in question might also be useful if
you're on a release that has statistics. You have tablespaces, so I'm pretty
sure you're at least on Oracle Version 6.0, unless of course you aliased
your column names in the query below.



From the data below you might only have two rows….



mwf



PS: If you want to see where Oracle puts each row and the order for sure,
you're going to need the logical row number in the data you are loading.
Then the answer of where Oracle stashed each row will be truly obvious if
you select the useful rowid bits and the logical row number order by logical
row number. (Not rownum, but an actual column added to the table containing
an ordered numeric sequence. Single stride ascending integers would be most
user friendly, and you might want to start with 10001 for reasons beyond the
scope of this thread. Or you could start with 42.


------------------------------

*From:* oracle-l-bounce@xxxxxxxxxxxxx [mailto:
oracle-l-bounce@xxxxxxxxxxxxx] *On Behalf Of *amonte
*Sent:* Friday, October 06, 2006 4:53 AM
*To:* oracle-l@xxxxxxxxxxxxx
*Subject:* datafiles space allocation algorithm



Hi

Suppose we have 4 datafiles in a tablespace, when we load data into this
tablespace how will Oracle assign the space? I thought it would use
round-robin like but it does not.

Before load I had datafiles which looked like this:

TABLESPACE_NAME
FILE_NAME                                             BYTES
------------------------------
------------------------------------------------ ----------
PM_IND_T01
/u02/oradata/vmw1020/PM_IND_T01_SIMP001.dbf             16
PM_IND_T01
/u02/oradata/vmw1020/PM_IND_T01_SIMP002.dbf             16

After load it shows this:

TABLESPACE_NAME
FILE_NAME                                                         BYTES
------------------------------
------------------------------------------------------------ ----------
PM_IND_T01
/u02/oradata/vmw1020/PM_IND_T01_SIMP001.dbf                        272
PM_IND_T01
/u02/oradata/vmw1020/PM_IND_T01_SIMP002.dbf                       1984

How does this work?

Thanks

Alex

Other related posts: