Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> How are extents allocated in a multi-datafile tablespace
--0-304089172-977419118=:18392
Content-Type: text/plain; charset=us-ascii
It's always been my understanding that when a tablesapce has multiple datafiles, extents are allocated in 1 datafile at a time until that datafile is full, then it switches to the next datafile. Today I read a note on a metalink forum where someone stated quite authoritatively that extents are allocated in a striped fashion amongst the datafiles. For example if you have three datafiles, the first extent goes to file 1, the second to file 2, the third to file three, and then back to file 1. Is this true? Is this something that's new in one of the versions of 8i? I've never heard of such a thing. It would be great if that were true because it would distribute i/o more evenly. But I thought the only way to accomplish that in Oracle was with hash paritioning.
On a similar note, I have a composite partitioned table spread across 3 tablespaces each with one datafile. The hash key for the subpartition is a sequentual number. When I bulk load into that tablespace, I don't see even i/o distribution amongst the data files. One file consistently gets 2x the # of writes as the other two. Why is that?
<P>It's always been my understanding that when a tablesapce has multiple datafiles, extents are allocated in 1 datafile at a time until that datafile is full, then it switches to the next datafile. Today I read a note on a metalink forum where someone stated quite authoritatively that extents are allocated in a striped fashion amongst the datafiles. For example if you have three datafiles, the first extent goes to file 1, the second to file 2, the third to file three, and then back to file 1. Is this true? Is this something that's new in one of the versions of 8i? I've never heard of such a thing. It would be great if that were true because it would distribute i/o more evenly. But I thought the only way to accomplish that in Oracle was with hash paritioning.</P> <P>On a similar note, I have a composite partitioned table spread across 3 tablespaces each with one datafile. The hash key for the subpartition is a sequentual number. When I bulk load into that tablespace, I don't see even i/o distribution amongst the data files. One file consistently gets 2x the # of writes as the other two. Why is that? </P><p><br><hr size=1><b>Do You Yahoo!?</b><br> <a href="http://shopping.yahoo.com/">Yahoo! Shopping</a> -Thousands of Stores. Millions of Products.
![]() |
![]() |