E é claro , isso que eu disse da comparação de performance entre um arquivo 
gigante de tamanho X gigabytes ou N arquivinhos de tamanho menor que somem X 
gigabytes no total ser indiferente só vale ** SE ** estamos comparando ambos os 
casos sendo servidos pelo mesmo exato hardware de I/O - é CLARO que se vc tiver 
um arquivo A residente num único disco versus os n arquivinhos espalhados em 
vários discos, aí É CLARO que daria diferença....

  []s

   Chiappa

--- Em oracle_br@yahoogrupos.com.br, "J. Laurindo Chiappa" <jlchiappa@...> 
escreveu
>
>   Tudo jóia, Rafael ?? Então, na verdade NÂO É o fato de vc abrir o arquivão 
> grandão que degrada, MAS SIM quando vc abre E LÊ / CARREGA PARA A MEMÓRIA o 
> arquivo, sim ??? Abrir apenas absolutamente ** Não ** gasta recursos 
> apreciáveis, é só um file handle que foi usado, não se consumiu RAM, CPU, I/O 
> ou rede quase nenhum... Faça uma experiência : crie um arquivo gigantesco na 
> sua máquina de testes, meça a performance da máquina com os utilitários de So 
> que vc tenha, depois faça um programinha numa linguagem de programação que 
> domine e permita abrir arquivos (pode ser Java, C, .NET, VB, a que quiser e 
> conhecer) que abra esse arquivo (SEM o ler, apenas o abra) e fique em pausa , 
> aí noutra janela meça de novo a performance da máquina, vc vai ver que está 
> praticamente IDÊNTICA...
>   É justamente esse o ponto aonde a sua analogia cai pela base , é que o 
> RDBMS Oracle **** nunca **** lê um datafile inteiro, do começo ao fim, okdoc 
> ? Por que ?? Vamos ver... 
> 
>  ==> Primeiramente, ESSA é a principal diferença do RDBMS para o editor de 
> texto : enquanto o editor de texto é Obrigado a ler o arquivo inteiro (ou uma 
> porção considerável dele), o RDBMS é um pouquinho mais esperto : ele divide o 
> datafile em pequenos pedaços de mesmo tamanho (o chamado BLOCO), e em cada 
> linha de cada tabela ele registra em qual bloco a linha está armazenada - 
> assim, se ele precisar recuperar a linha X que está, digamos, no bloco 5000 
> do datafile, ele *** NÂO VAI ** ler do bloco 1 até o 5000 - como ele SABE o 
> tamanho do bloco (digamos que seja bloco de 8kb), se a informação está no 
> bloco 5000 ele faz uma continha de 5000 * 8 kb = 40960000, aí ele pede para 
> ler apenas essa posição do arquivo, yep ??? Esse tipo de operação, 
> posicionando o leitor numa dada posição do arquivo e assim evitando varredura 
> a partir do início se chama FILE SEEK (frequentemente abreviada por FSEEK, ou 
> similares), e existe em praticamente todas as linguagens de programação 
> modernas, mas principalmente existe na linguagem C, na qual o RDBMS Oracle 
> foi escrito... 
> 
>   E quando não sabemos qual linha contém a informação desejada (ou então 
> queremos agrupar/processar MÚLTIPLAS linhas da tabela), e portanto não 
> sabemos quais blocos são necessários, o que livra o RDBMS de ler o arquivo 
> todo, bloco a bloco ??? O seguinte conceito : quando o RDBMS precisa de 
> espaço para gravar dados, ele não aloca um só bloco, mas sim TODO um conjunto 
> de blocos (de tamanho variável) chamado EXTENT, e o bloco de início de cada 
> extent fica armazenado no database - assim, para a tabela X o RDBMS  *** SABE 
> *** que o primeiro extent começo no bloco tal, PORTANTO obviamente os n 
> blocos anteriores Não precisam ser lidos, a partir do incício do arquvi, sim 
> ???? Esquece isso, esse negócio de ler arquivo do início é coisa para editor 
> de texto, não para RDBMS ....
> 
>   Jóia ??  OBVIAMENTE por questão de didática eu falei aqui de modo geral, há 
> DIVERSOS detalhes importantes que vc VAi captar no manual de Concepts do 
> database, mas creio que o que eu falei já dá pra ter uma noção de porque o 
> tamanho do arquivo em si é irrelevante para a performance... Até se vc pensar 
> friamente um pouco a respeito, outras posições equivocadas sobre performance 
> (como por exemplo separar tabelas x índices em datafiles diferentes) com os 
> conceitos que expus caem por terra : SE o RDBMS ** nunca ** lê um datafile do 
> início ao fim, sempre "pulando" para o bloco desejado OU no mínimo para o 
> bloco aonde o extent se inicia, que diferença para a performance pode haver 
> se os índices estão no mesmo arquivo/datafile que os dados (num único enorme 
> arquivão gigante) ??? Bem pouca, Né ?
> 
>    []s
> 
>     Chiappa
> 
>  OBS : só para constar, o tamanho do arquivo pode ser ** crucial ** por 
> questões Administrativas, não para performance - por exemplo, em caso de 
> crash, quanto maior o arquivo mais tempo ele leva para ser voltado do backup, 
> né ?? Ou ainda , os eventuais limites  : de repente o teu hardware, ou qquer 
> componente do teu software relaionado a discos (ou mesmo o teu SO, porque não 
> ?) TEm um limite de X gigabytes para um único arquivo, de repente vc pode 
> acabar com corrupção/erros se deixar o datafile chegar nesse ponto... 
>    Coisas assim, ADMINISTRATIVAS,  são aonde o tamanho do datafile importa...
> 
> --- Em oracle_br@yahoogrupos.com.br, Rafael Stoever <rstoever@> escreveu
> >
> > Boa tarde a todos,
> > 
> >      Irei fazer uma analogia sobre um arquivo texto de 10GB e um datafile
> > de 10GB e um de 32GB.
> >      Se efetuarmos a abertura do arquivo de 10GB no sistema operacional
> > teremos um problema grande de memoria, podendo ate travar o sistema
> > operacional.
> > 
> >     Agora a questão são os datafiles grandes 32GB quando abertos pelo
> > Oracle para efetuar uma busca muito massiva de dados, ou mesmo somente
> > abrir-los, ele poderá ocasionar um problema de performance da mesma forma
> > que o editor de texto ?
> > Pois ao checar os arquivos abertos pelo Oracle ele fica com o alguns
> > datafiles abertos.
> > 
> > Pergunta: O tamanho do arquivo irá influenciar na performance geral da
> > maquina quando o oracle for abrir o datafile?
> > 
> > abs
> > Rafael Stoever / @rstoever
> > 
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>


Responder a