Pular para o conteúdo
  • Este tópico contém 17 respostas, 6 vozes e foi atualizado pela última vez 13 anos, 10 meses atrás por Rodrigo Almeida.
Visualizando 3 posts - 16 até 18 (de 18 do total)
  • Autor
    Posts
  • #101146
    Avatar photoRegis Araujo
    Participante

      Senhores.. boa noite..!

      Só uma colocação..

      O Hint APPEND não vai fazer gerar redo ou não, o hint APPEND em um insert, vai simplesmente inserir os dados após o final da marca d´agua, ou seja, se vc tem uma tabela com 10milhões de linhas e faz inserts e deletes constantemente, pode acontecer de ficarem “buracos” nos segmentos desta tabela, com blocos não usados, pois ela não foi “reorganizada”, utilizando o hint APPEND vc fala para o Oracle descartar estes buracos, ele não vai precisar ficar procurando por blocos vazios dentro da tabela para inserir os dados, ele simplesmente vai no ultimo bloco utilizado da tabela e começa a inserir a partir daquele ponto..


      Um exemplo seria mais ou menos assim...

      Vc possui uma tabela os blocos preenchidos com dados..

      1-2-3-4-5-6-7-8-9-10-

      Deleta os valores nos blocos pares.. terá:

      1- -3- -5- -7- -9- -

      Inserindo novos valores sem o hint APPEND:

      1-2-3-4-5-6-7-8-9-10-

      Inserindo novos valores com o hint APPEND:

      1- -3- -5- -7- -9- -11-12-13-14-15-16

      Tanto que muitas vezes precisamos fazer um Shrink na tabela para reorganiza-la…

      Para tentar não gerar muitas entrada nos redos, vc pode colocar a tabela em modo NOLOGGING, mas como o Rodrigo falou, mesmo assim vai gerar entradas nos redos..

      Bom.. me corrijam se eu estiver errado.. mas por tudo q estudei e me lembro.. é assim que funciona o hint APPEND.. Tanto que inserts por DML usam por default APPEND..

      Abraços.!

      #101192
      burga
      Participante

        Régis, você está certo, o hint APPEND por si só é isso, o negócio do REDO é quando se usa ele em conjunto com o NOLOGGING na tabela.

        E sim, vai gerar REDO, mas porque gera um pouco de UNDO, pros índices e o que mais alterar no dicionário de dados. Mas não gera pros dados que estão sendo inseridos no momento… Pelo menos é assim que eu entendo! Mas se eu estiver errado, é mais uma coisa que aprendo… 😀

        Alguém pode confirmar ou me corrigir?

        #102772
        Rodrigo Almeida
        Participante

          Eu concordo com o Burga e Thunder.

          REDO é gerado em qq DML e APPEND é apenas para não procurar por blocos vazios, por isso o nome APPEND… hehehehehehhe

          Abraços,

        Visualizando 3 posts - 16 até 18 (de 18 do total)
        • Você deve fazer login para responder a este tópico.