Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: type of striping
Chuck wrote:
> Frank van Bortel wrote:
>
>> yls177 wrote: >> >>> Hi, i understand that there are different types of striping for raid 0. >>> >>> 1) OS/Hardware striping >>> 2) manual striping >>> >>> And the general consenus is that OS/Hardware striping is better than >>> manual. >>> >>> Please advise >> >> >> >> Advise what? >> Against the general consensus? Which would probably be hardware >> over software, btw. >> >> How would you stripe manually?!? Get your sleeves rolled up, >> put on your high voltage protection gloves, and jump into the >> computer case? >>
Just thought I'd mention that in fact, things were and are, precisely the opposite way around. In a multi-file tablespace in 8.0, for example, Oracle would allocate the initial extent on file 1, the next on file 2, the next on file 3, then back to file 1, 2, and so on. It would, in short, "round robin" the extents.
In locally-managed tablespace, it hammers disk 1 to death and only moves on to disk 2 when no more space is available on disk 1 *IF* the tablespace is AUTOALLOCATE LMT. If you do UNIFORM SIZE LMT, then the round robin behaviour is unchanged.
As this little test proves (done on 9i, so LMT is the default):
SQL> create tablespace t
2 datafile '/oracle/oradata/sapphire/t1.dbf' size 5m, 3 '/oracle/oradata/sapphire/t2.dbf' size 5m, 4 '/oracle/oradata/sapphire/t3.dbf' size 5m5 autoallocate;
Tablespace created.
SQL> create table T1 tablespace T as select * from dba_objects;
Table created.
SQL> select file_id from dba_extents
2 where segment_name='T1';
FILE_ID
6 6 6 6 6 6 6 6 6
[So, file 6 hammered to death in the autoallocate tablespace, and the other two files don't get a look-in]
SQL> create tablespace U
2 datafile '/oracle/oradata/sapphire/u1.dbf' size 5m, 3 '/oracle/oradata/sapphire/u2.dbf' size 5m, 4 '/oracle/oradata/sapphire/u3.dbf' size 5m5 uniform size 64k;
Tablespace created.
SQL> drop table T1;
Table dropped.
SQL> create table T1 tablespace U as select * from dba_objects;
Table created.
SQL> select file_id from dba_extents
2 where segment_name='T1';
FILE_ID
9 10 8 9 10 8 9 10 8 9 10
[Now all three files are in use, thanks to the uniform size clause]
Regards
HJR
Received on Tue Dec 07 2004 - 14:10:41 CST