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 15 posts - 1 até 15 (de 18 do total)
  • Autor
    Posts
  • #101069
    jurupoc
    Participante

      Boa tarde Pessoal,

      Alguem sabe se é possível fazer um comando insert sem gerar archives?

      Obrigado!!!

      #101072
      burga
      Participante

        Pro INSERT não gerar archive você tem que ativar o NOLOGGING pra sua tabela e executar seu INSERT com o hint APPEND…

        #101073
        vpapa
        Participante

          [quote=”burga”:y3bufexv]Pro INSERT não gerar archive você tem que ativar o NOLOGGING pra sua tabela e executar seu INSERT com o hint APPEND…[/quote]

          Ricardo,

          Fazendo isso ira invalidar o rollback se necessario, correto?

          #101074
          rman
          Participante

            @jurupoc

            Qual é a real necessidade disso ?

            #101075
            burga
            Participante

              [quote=”vpapa”:2n63eyce][quote=”burga”:2n63eyce]Pro INSERT não gerar archive você tem que ativar o NOLOGGING pra sua tabela e executar seu INSERT com o hint APPEND…[/quote]

              Ricardo,

              Fazendo isso ira invalidar o rollback se necessario, correto?[/quote]

              Não, o rollback vai continuar funcionando… Segue um caso de teste:

              :~> sqlplus / as sysdba

              SQL*Plus: Release 10.2.0.4.0 - Production on Qui Set 29 19:31:27 2011

              Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

              Conectado a:
              Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
              With the Partitioning, OLAP, Data Mining and Real Application Testing options

              SQL> archive log list
              Modo log de banco de dados Modo de Arquivamento
              Arquivamento automático Ativado
              Destino de arquivamento USE_DB_RECOVERY_FILE_DEST
              A seqüência de log on-line mais antiga 3986
              Próxima seqüência de log a arquivar 3988
              Seqüência de log atual 3988

              SQL> conn ricardoht
              Informe a senha:
              Conectado.
              SQL> create table t (
              2 c1 number(5),
              3 c2 varchar2(10))
              4 nologging;

              Tabela criada.

              SQL> select table_name, logging from user_tables;

              TABLE_NAME LOG


              T NO

              SQL> insert /*+ APPEND */ into t values (1,'a');

              1 linha criada.

              SQL> select * from t;

                  C1 C2
              

                   1 a
              

              SQL> rollback;

              Rollback concluído.

              SQL> select * from t;

              não há linhas selecionadas

              SQL>

              Abraços,

              #101082
              jurupoc
              Participante

                Bom dia Pessoal,
                Rman estou fazendo uma importação de um outro sistema e está gerando um archive enorme, a velocidade do insert tbm não está legal. Vou tentar fazer dessa forma!!
                Obrigado!!!

                #101083
                rman
                Participante

                  @jurupoc

                  Este banco de dados está em produção ?

                  Se o banco não estiver em produção, desative o ARCHIVE LOG, faça a importação, ative o ARCHIVE LOG, e faça um backup full.

                  Pense na possibilidade de utilizar o sql loader para fazer a carga, você notará facilmente que tem mais performance que um bloco enorme de INSERTs.

                  #101087
                  jurupoc
                  Participante

                    Então o complicado é que o banco é de produção, obrigado pela Dica rman

                    #101089
                    rman
                    Participante

                      @jurupoc

                      Sendo de produção, a dica do sql loader ainda é valida.

                      @all

                      Os INSERTs que não utilizem o HINT APPEND continuram gerando archive log ?

                      #101096
                      burga
                      Participante

                        @Rman

                        Sem o append ele vai continuar gerando redo, como consequência vai gerar archive também…

                        Olha o tom ai explicando, a tabelinha dele é show 😀

                        http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:5280714813869

                        #101098
                        rman
                        Participante

                          @burga

                          Então pensando na importação via INSERT vai dar certinho para o que o jurupoc precisa. Os INSERTs do sistema provalmente não terão o HINT APPEND então continuará gerando redo e archive log.

                          E pensando em sql loader ? É possível ?

                          #101101
                          burga
                          Participante

                            @Rman

                            Usando o loader, se não for via direct path ele vai gerar redo também. Via direct path tem uma opção unrecoverable, que é especificamente pra não gerar redo, mas eu nunca usei ela…

                            #101111
                            vpapa
                            Participante

                              @Ricardo,

                              Vlw a resposta.

                              OBS: eu me confundi entre undo e redo.

                              #101116
                              jurupoc
                              Participante

                                Pessoal estou utilizando insert como HINT APPEND, a quantidade de archive caiu bastante!!!!!!!!
                                😮 )

                                Ahhh um detalhe, o programador alterou o fonte do sistema!!!!
                                😮 ))

                                #101119
                                Rodrigo Almeida
                                Participante

                                  O único que irá trazer problemas nos segmentos de UNDO (ROLLBACK) é quando se utiliza SQL*LOADER com a opção de LOAD DIRECT PATH.

                                  Mas nos testes, na instrução de INSERT, com ou sem APPEND, faça posteriormente um explain plan com estatísticas, pois irá perceber mesmo que em NOLOGGING irá gerar entradas de redo!!! =D

                                  Abraços,

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