- Este tópico contém 17 respostas, 6 vozes e foi atualizado pela última vez 13 anos, 10 meses atrás por
Rodrigo Almeida.
-
AutorPosts
-
29 de setembro de 2011 às 11:08 pm #101069
jurupoc
ParticipanteBoa tarde Pessoal,
Alguem sabe se é possível fazer um comando insert sem gerar archives?
Obrigado!!!
30 de setembro de 2011 às 12:10 am #101072burga
ParticipantePro INSERT não gerar archive você tem que ativar o NOLOGGING pra sua tabela e executar seu INSERT com o hint APPEND…
30 de setembro de 2011 às 12:13 am #101073vpapa
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?
30 de setembro de 2011 às 2:23 am #101074rman
Participante@jurupoc
Qual é a real necessidade disso ?
30 de setembro de 2011 às 2:39 am #101075burga
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 sysdbaSQL*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 optionsSQL> 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 3988SQL> 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 aSQL> rollback;
Rollback concluído.
SQL> select * from t;
não há linhas selecionadas
SQL>
Abraços,
30 de setembro de 2011 às 3:37 pm #101082jurupoc
ParticipanteBom 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!!!30 de setembro de 2011 às 3:52 pm #101083rman
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.
30 de setembro de 2011 às 5:01 pm #101087jurupoc
ParticipanteEntão o complicado é que o banco é de produção, obrigado pela Dica rman
30 de setembro de 2011 às 5:17 pm #101089rman
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 ?
30 de setembro de 2011 às 8:03 pm #101096burga
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
30 de setembro de 2011 às 8:26 pm #101098rman
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 ?
30 de setembro de 2011 às 8:52 pm #101101burga
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…
30 de setembro de 2011 às 11:04 pm #101111vpapa
Participante@Ricardo,
Vlw a resposta.
OBS: eu me confundi entre undo e redo.
30 de setembro de 2011 às 11:57 pm #101116jurupoc
ParticipantePessoal estou utilizando insert como HINT APPEND, a quantidade de archive caiu bastante!!!!!!!!
😮 )Ahhh um detalhe, o programador alterou o fonte do sistema!!!!
😮 ))1 de outubro de 2011 às 9:53 am #101119Rodrigo Almeida
ParticipanteO ú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,
-
AutorPosts
- Você deve fazer login para responder a este tópico.