Obrigado pela explicação jlchiappa. Valeu....
----- Mensagem original ---- De: jlchiappa <[EMAIL PROTECTED]> Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 25 de Outubro de 2006 13:41:02 Assunto: [oracle_br] Re: Update Monstro Por partes : >> 1 - Como eu faço para limpar a area de Redolog ... essa frase NÂO faz o menor sentido, ao contrário do que ocorre em alguns outros bancos, no Oracle redos NÃO SÃO coisas temporárias que vc pode imediatamente esvazliar/apagar/dropar, eles PODEM a qquer momento conter dados REAIS e COMITADOS ainda não presentes nos datafiles. É uma questão de estrutura interna do bd Oracle. Se vc estiver REALMENTE, TOTALMENTE, ABSOLUTAMENTE desesperado por espaço em disco, o que vc PODE fazer, em tese, é criar NOVOS log files menores com comandos alter database add logfile nnn , pedir por banco fechar (e se em modo archive archivar) os anteriores com switch logfile, e aí sim dropar os log files grandes via alter database drop logfile . Fique ciente que isso NÂO É recomendado nem recomendável, pois via de regra vc VAI PAGAR um alto preço em performance fazendo isso, já que com log files menores eles VÂO encher mais rapidamente, PORTANTO o proceso archivador de logs vai ser acionado mais frequentemente, ALTAS CHANCES dele conflitar com outrs I/Os.... Já archived logs, por sua própria definição (ie, são CÓPIAS dos log files que encheram), são um PASSADO, portanto NÂO SÃO obrigatórios de se manter online enquanto não tiver que fazer recuperação de banco, ok ? Assim, o procedimento é SIMPELSMENTE se fazer um backup deles (em fita, em DVD, naonde vc puder), pra quando no futuro vc vir a precisar, e feito isso vc APAGA eles do disco com o comando de APAGAR ARQUIVOS do seu Sistema Operacional, simples... >> area que eu possa limpar ??? Claro : primeira coisa, levantar nas tablespaces de DADOS de usuários os objetos que mais estão ocupando espaço, e checar com o usuário o que se faz com eles : certamente ALGUNS devem poder ser compactados, alguns talvez possam sofrer DELETEs ou DROPs... Segunda coisa, o DBA desse banco terá que checar as condições de STORAGE dos objetos de usuários : há extents iniciais muitíssimo maiores do que o necessário ? Há datafiles LMT criados com desperdício de espaço (ie, de tamanho não-múltiplo do extent size da tablespace mais 64 Kb) ?? Há objetos que só sofrem INSERTs (tais como tabs de log/históricos) e (ultra-erradamente!!) NÃO estão criadas com PCTUSED o mais alto possível ? Há fragmentação, se for usada tablespace DMT ? ==>> SÓ com essas coisas acima, já vi banco que estava sofrendo de falta de espaço crônica do "nada" liberar razoável espaço livre, PRINCIPALMENTE em DWs/batches... Nem citarei aqui os schemas de exemplos do bd Oracle, já que LOGICAMENTE se há espaço limitado a PRIMEIRA coisa que o responsável fez foi dropar esses caras, né :) >> 2 - Como fazer este update sem armazenar nada no Redolog e Archive ou qualquer outra area de Rolback ??? Eu já disse em msg anterior, TORNO A DIZER : redo log (e archived logs, que DECORREM da geração de logs) e rollback/undo são INESCAPÁVEIS, absolutamente NÃO TEM COMO vc não os gerar, a estrutura interna do funcionamento do bd Oracle assim o exige - repita isso ATÉ acreditar, pois essa é a verdade nua e crua.... O que é possível, como já tinha dito em outras msg e repito, é DIMINUIR o redo e o undo/rollback, mas APENAS EM ALGUNS POUCOS CASOS, como por exemplo INSERTs de ** várias linhas ** simultâneas , feito em modo APPEND feitos em objetos NOLOGGINGs, sim ? E para que a diminuição seja palpável, os ÌNDICES e as CONSTRAINTS da tabela sendo inserida em append-mode necessariamente TEM QUE estarem desabilitados/desligados, confere ??? UPDATE *** NÂO TEM COMO *** não gerar redo/undo, mas se for o caso vc PODE transformar o seu UPDATE num INSERT, + ou - assim : faz insert /*+ APPEND */ tabelatemporária (select que traz os dados que vc quer alterar já alterados), faz TRUNCATE na tabela real, faz INSERT /+ APPEND */ tabelareal (select from tabelatemp), ou variações da técnica, é EXATAMENTE ISSO que é discutido em http://asktom.oracle.com/pls/ask/f? p=4950:8:::::F4950_P8_DISPLAYID:6407993912330 , é uma técnica absolutamente COMUM em ambientes Oracle de grandes volumes. Evidentemente, já que uma operação do tipo LOGICAMENTE é algo pontual, certamente será feita fora do horário de pico, quando POUQUÍSSIMAS coisas (ou mesmo NADA) estará rodando no bd Oracle, assim nada impede de vc "alocar" o máximo do hardware para a tarefa, já que a operação estará "sozinha" na máquina - via ALTER SESSION, usar Parallel Queries, Parallel DMLs, deixar sort_area_size e hash_area_size lááááá no topo (se preciso mudando workarea_size_policy=MANUAL), essas coisas serão os seus aliados nisso... Da mesma forma, já que vc estará sozinho, NÂO FAZ SENTIDO checar as constraints, então uma vez re-construída a tabela, feito o rebuild NOLOGGING e PARALLEL dos índices, vc ** NÂO VALIDA ** as constraints que foram desabilitadas, pois NINGUÉM alterou os dados, vc só dá um ALTER TABLE nnn ENABLE CONSTRAINT xxx NOVALIDATE, o que é quase instantâneo... []s Chiappa =========================================================== Participe do ENPO - Encontro de Profissionais Oracle 2006 ! Informações e inscrições em www.enpo-br.org José Laurindo Chiappa, Palestrante ENPO-2006 =========================================================== _______________________________________________________ Você quer respostas para suas perguntas? Ou você sabe muito e quer compartilhar seu conhecimento? Experimente o Yahoo! Respostas ! http://br.answers.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] Vem aí: ENPO-BR 2006 - Encontro Nacional de Profissionais Oracle VISITE: http://www.enpo-br.org/ - Dia 11/11 "Vagas Limitadas" ________________________________________________________________ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine -------------------------------------------------------------------------------------------------------------------------- Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -------------------------------------------------------------------------------------------------------------------------- O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ ------------------------------------------------------------------------------------------------------------------------ Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html