Se voce já sabe que ele divide e isso é importante para performance (I/O), para mim é isso que importa. (mas isso é opinião pessoal e entendo sua curiosidade). Tentando ajudar: obviamente é um algorítmo interno que nunca tive curiosidade de pesquisar. Porém, voce pode começar um investigação fazendo um load em uma tabela em uma tablespace que possua 2, 3 datafiles e ver a quantidade de dados que vai para cada um. Exemplo executado no 9i e 10g.
9i (9.2.0.8) ============ FILE_NAME MBYTES PCT ------------------------------ ------------- ------------- /oracle/tmp/df1.dbf 14 51,85 /oracle/tmp/df2.dbf 13 48,15 10g (10.2.0.3) ============== FILE_NAME MBYTES PCT ------------------------------ ------------- ------------- /oracle/tmp/df1.dbf 24 51,06 /oracle/tmp/df2.dbf 23 48,94 E o script que usei para o teste. -- set echo on create tablespace tbs_deldf datafile '/oracle/tmp/df1.dbf' size 50m, '/oracle/tmp/df2.dbf' size 50m / col file_name format a30 select file_name from dba_data_files where tablespace_name = 'TBS_DELDF' / create table t tablespace tbs_deldf as select * from all_objects; insert /*+ append */ into t select * from t; commit; insert /*+ append */ into t select * from t; commit; insert /*+ append */ into t select * from t; commit; select count(*) from t; with sum_byt as ( select file_id, sum(bytes) sum_bytes from dba_extents where owner = user and segment_name = 'T' and segment_type = 'TABLE' group by file_id ) select file_name, round( sum_bytes/1024/1024, 2 ) mbytes, round( ratio_to_report(sum_bytes) over () * 100, 2 ) pct from dba_data_files df, sum_byt ex where df.file_id = ex.file_id / drop tablespace tbs_deldf including contents and datafiles; set echo off On 4/23/07, Clayton Rocha <[EMAIL PROTECTED]> wrote: > > Entendo perfeitamente que ele divide e que temos ganho de performance > caso > estejam em discos diferentes... > > A minha dúvida seria qual seria o critério que determina onde ele irá > salvar... Realmente acho que não vai ser possível alguém me explicar isso > em > poucas linhas, mas, deixo uma outra pergunta: > > Existe algum material com explicações sobre esse assunto? É possível eu > entender essa tomada de decisões ou é algo que apenas devo saber que ele > divide, faz o melhor possível e ponto? > > Obrigado! > > Clayton Rocha > > De: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> [mailto: > oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>] Em > nome de Marcio Portes > Enviada em: segunda-feira, 23 de abril de 2007 17:45 > Para: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> > Assunto: Re: [oracle_br] Segmento x Datafile > > Grosso modo falando... Não é uma resposta para ser desenvolvida em 3 > linhas... > Porque ele divide a carga de I/O espalhando os blocos através dos > datafiles. > Imagine se voce tivesse cada datafile em um disco diferente com > controladoras diferentes, voce ganharia em leitura, porque as > controladoras > iriam atenter em paralelo ao request do banco. > > On 4/23/07, Clayton Rocha <[EMAIL > PROTECTED]<clayton.rocha%40faitec-cons.com.br> > <mailto:clayton.rocha%40faitec-cons.com.br> > wrote: > > > > Boa tarde! > > > > Fiquei com uma curiosidade agora... se eu tenho uma tablespace com dois > > datafiles e movo um segmento para essa tablespace. O que determina em > qual > > dos dois datafiles o segmento vai ser armazenado se eu tenho espaço > livre > > suficiente nos dois? Por que, mesmo tendo espaço para alocar em um único > > datafile acontece do Oracle dividir o segmento nos dois? > > > > Oracle 10g em Windows. > > > > Obrigado! > > > > Clayton Rocha > > > > DBA Oracle > > > > Faitec Tecnologia > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > -- > Marcio Portes > Material Tecnico em Portugues - http://mportes.blogspot.com > Practical Learning Oracle - > http://mportes.blogspot.com/2006/02/practical-learning-oracle.html > > [As partes desta mensagem que não continham texto foram removidas] > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Marcio Portes Material Tecnico em Portugues - http://mportes.blogspot.com Practical Learning Oracle - http://mportes.blogspot.com/2006/02/practical-learning-oracle.html [As partes desta mensagem que não continham texto foram removidas]