Caro Silva, sinceramente me perdoe se em algum momento lhe ofendi não era e não é minha intenção, mais como estamos sempre aprendendo, as vezes nos enganamos e precisamos realmente como vc muito bem colocou pesquisar e reciclar nossos conhecimentos. Minha intenção aqui como certamente e da maioria é aprender, tirar duvidas, interagir e colaborar na medida do possível para engrandecer esse arduo e dificil trabalho. Quanto a utilização da sua frase e as demais ideias humildemente acredito que esteja dentro do contexto pois se verificarmos a materia do Burleson veremos que é possivel inserir uma quantidade absurda de informações na(s) tabela(s) utilizando outras tecnicas que vão assegurar a integridade e sucesso da transação. Mais uma vez peço desculpas a vc e a todos do grupo ... "de boa ... bola pra frente" e "tamu junto" ... abraço a todos ... = D !!! To: oracle_br@yahoogrupos.com.br From: jljlsi...@yahoo.com.br Date: Fri, 16 Mar 2012 17:26:11 -0300 Subject: Re: [oracle_br] Crescimento de tabela sem justificativa
Petersen, Aonde vc quer chegar com essa discussão? O objetivo deste tópico era analisar o problema do crescimento da tabela citado pela Luciana. Não estamos discutindo se é bom ou ruim o uso do hint append. O que eu citei foi simplesmente o seguinte: **se for utilizado corretamente**, o append pode ser interessante, mas tem esse efeito colateral que faz a tabela sempre crescer. Você usou uma frase minha fora do contexto. Desculpe se te ofendi com minha resposta, pois não era a intenção. Mas, de boa.. boa prá frente. Observação: Muito bons os artigos do Tom Kyte e do Donald Burleson. Essa análise do Tim Kyte, inclusive, eu já tinha lido. Em todas as vezes que apliquei o uso do hint append tive bons resultados. Claro que não podemos generalizar (nunca podemos generalizar quando falamos de hint). Abraço! On Mar 16, 2012, at 4:37 PM, Francisco Petersen Jr wrote: > > > > > > > > Caro Silva, muito obrigado por suas considerações. Conforme mencionei (e me > desculpe se não expliquei e acabei complicando) e pesquisas efetuadas apartir > da sua sugestão podemos vir a ler o que Tom > Kyle(http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1211797200346279484) > e Don Burleson falam à respeito do assunto > (http://dba-oracle.com/t_optimize_insert_sql_performance.htm). Só para termos > uma noção. vc diz que: "visando tornar o insert mais rápido, o oracle ignora > os blocos livres e insere o novo registro sempre no final da tabela, após a > HWM." quanto que na verdade "Usando o append hint no insert, vc assegura que > o Oracle sempre "eleve" o HWM da tabela pegando data blocks "frescos" (By > using the append hint, you ensure that Oracle always > grabs "fresh" data blocks by raising the high-water-mark for the table. Don > Burlesson), e o Tom diz o seguinte: Insert /*+ APPEND */ - why it would be > horrible for Oracle to make that the > "default". > > a) it isn't necessarily faster in general. It does a direct > path load to disk - bypassing the buffer cache. There are many cases - > especially with smaller sets - where the direct path load to disk would be > far > slower than a conventional path load into the cache. > > b) a direct path > load always loads above (AQUI ENTENDA/INTERPRETE QUE ELE FAZ O QUE O Don > MENCIONA, ELE "ELEVA" O HWM) the high water mark, since it is formatting and > writing > blocks directly to disk - it cannot reuse any existing space. Think about > this - > if you direct pathed an insert of a 100 byte row that loaded say just two > rows - > and you did that 1,000 times, you would be using at least 1,000 blocks (never > reuse any existing space) - each with two rows. Now, if you did that using a > conventional path insert - you would get about 70/80 rows per block in an 8k > block database. You would use about 15 blocks. Which would you prefer? > > > c) you cannot query a table after direct pathing into it until you > commit. > > d) how many people can direct path into a table at the same > time? One - one and only one. It would cause all modifications to serialize. > No > one else could insert/update/delete or merge into this table until the > transaction that direct paths commits. > > Direct path inserts should be > used with care, in the proper circumstances. A large load - direct path. But > most of the time - conventional path. > > Espero ter colaborado. > Abraço, > Francisco. > To: oracle_br@yahoogrupos.com.br > From: jljlsi...@yahoo.com.br > Date: Fri, 16 Mar 2012 10:41:47 -0300 > Subject: Re: [oracle_br] Crescimento de tabela sem justificativa > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Caro amigo Petersen Jr. > > Talvez seja melhor você ler com atenção a informação sobre o uso do hint > "append" no insert. > > Caso não conheça, procure conhecer. Pode ser útil, quando usado corretamente. > > > > On Mar 15, 2012, at 9:43 PM, Francisco Petersen Jr wrote: > > > >> > >> > >> > >> Caro Silva, conforme ... "Para esclarecimento: o inicial está com 10Mb, next >> 1Mb, pctincrease 0 minextents 1 PCTFREE 0 PCTUSED 90" ... se não estou >> enganado ... o oracle NÃO IGNORA OS BLOCOS LIVRES E INSERE O NOVO REGISTRO >> SEMPRE NO FINAL DA TABELA ... o ORACLE faz exatamente aquilo que foi >> definido em tempo pelos developers, analistas e dbas de aplicação ... = D >> !!! ... Att, > >> > >> > >> To: oracle_br@yahoogrupos.com.br > >> From: jljlsi...@yahoo.com.br > >> Date: Thu, 15 Mar 2012 18:11:30 -0300 > >> Subject: Re: [oracle_br] Crescimento de tabela sem justificativa > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> Oi, Luciana. > >> > >> Uma situação que pode causar este comportamento é o insert com append. > >> > >> Quando usamos o hint append no insert, visando tornar o insert mais rápido, >> o oracle ignora os blocos livres e insere o novo registro sempre no final da >> tabela, após a HWM. > >> > >> Verifica se isto está ocorrendo. > >> > >> > >> > >> On Mar 15, 2012, at 2:52 PM, Luciana Missao Osako Camargo wrote: > >> > >> > >> > >>> Pessoal, > >> > >>> > >> > >>> Para esclarecimento: o inicial está com 10Mb, next 1Mb, pctincrease 0, > >> > >>> minextents 1. > >> > >>> PCTFREE 0 PCTUSED 90 > >> > >>> > >> > >>> Agradeço todas as contribuições, mas a minha dúvida maior é, como ele > >> > >>> chega a este tamanho se é feito DELETE (sem clausula nenhuma) e INSERT. > >> > >>> Não existe update ou delete com alguma cláusula. > >> > >>> De dados de fato só tem 200Mb. > >> > >>> Qual o motivo de chegar a 4Gb? > >> > >>> > >> > >>> Apenas um parenteses: não estou recebendo todos os e-mails da lista .... > >> > >>> > >> > >>> Obrigada > >> > >>> Luc > >> > >>> > >> > >>> Em 14 de março de 2012 18:09, Bruno Sales <brunosale...@gmail.com> escreveu: > >> > >>> > >> > >>>> ** > >> > >>>> > >> > >>>> > >> > >>>> De repente vc pode fazer o shrink da tabela, mas aí voce vai ter que > >> > >>>> verificar se o espaço dela é reusavel. > >> > >>>> alter table tabela enable row mevement; > >> > >>>> alter table tabela shrink space; > >> > >>>> > >> > >>>> Em 14 de março de 2012 16:20, [Paulo Sousa] <paulorso...@gmail.com > >> > >>>>> escreveu: > >> > >>>> > >> > >>>>> Luciana, > >> > >>>>> > >> > >>>>> não pode ter a ver com o initial e next extent (size) da tablespace onde > >> > >>>> a > >> > >>>>> tabela está? Já tentou levar essa tabela para uma outra tablespace com > >> > >>>>> definições diferentes dessa atual e verificar o comportamento da > >> > >>>> operação? > >> > >>>>> > >> > >>>>> Abraço. > >> > >>>>> > >> > >>>>> Paulo Sousa > >> > >>>>> paulorso...@gmail.com > >> > >>>>> ____________________________________ > >> > >>>>> "No caráter, na conduta, no estilo, em todas as coisas, a simplicidade é > >> > >>>> a > >> > >>>>> suprema virtude." (Henry Wadsworth) > >> > >>>>> > >> > >>>>> > >> > >>>>> > >> > >>>>> 2012/3/14 Luciana Missao Osako Camargo <lcama...@cpqd.com.br> > >> > >>>>> > >> > >>>>>> ** > >> > >>>>>> > >> > >>>>>> > >> > >>>>>> Pessoal, > >> > >>>>>> > >> > >>>>>> Não posso fazer o truncate, pois é parte de uma transação mais > >> > >>>> complexa. > >> > >>>>>> > >> > >>>>>> A alternativa q tenho é corrigir este comportamento, mas mantendo-se a > >> > >>>>>> transação. > >> > >>>>>> > >> > >>>>>> Luc > >> > >>>>>> > >> > >>>>>> Em 14 de março de 2012 16:03, Thiago Sgobe <thiagosg...@gmail.com> > >> > >>>>>> escreveu: > >> > >>>>>> > >> > >>>>>> > >> > >>>>>>> Luciana > >> > >>>>>>> > >> > >>>>>>> Use truncate table; ao inves do DELETE, desta forma a marca d'agua da > >> > >>>>>>> tabela sera reajustada e evitara o crescimento inconveniente. > >> > >>>>>>> > >> > >>>>>>> Att. > >> > >>>>>>> Thiago Sgobe > >> > >>>>>>> > >> > >>>>>>> Em 14 de março de 2012 15:53, Luciana Missao Osako Camargo < > >> > >>>>>>> lcama...@cpqd.com.br> escreveu: > >> > >>>>>>> > >> > >>>>>>>> ** > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> Pessoal, > >> > >>>>>>>> > >> > >>>>>>>> Eu estou com Enterprise Edition Release 10.2.0.5.0 > >> > >>>>>>>> > >> > >>>>>>>> Tenho uma tabela que está com crescimento exagerado e, a princípio, > >> > >>>>> sem > >> > >>>>>>>> que possa ser justificada. > >> > >>>>>>>> > >> > >>>>>>>> A tabela está com PCTFREE 0 e PCTUSED 90 > >> > >>>>>>>> > >> > >>>>>>>> Só existe uma package que trabalha com esta tabela e faz: > >> > >>>>>>>> DELETE FROM tabela; > >> > >>>>>>>> INSERT INTO tabela SELECT * FROM tabela2; > >> > >>>>>>>> É exatamente dessa forma, sem hints, nada! > >> > >>>>>>>> > >> > >>>>>>>> Se é feito um MOVE nesta tabela, ela cai para 200Mb, mas ela cresce > >> > >>>>> até > >> > >>>>>>>> uns 4Gb. > >> > >>>>>>>> > >> > >>>>>>>> Tem algo que eu possa ser verificado para evitar este crescimento? > >> > >>>>>>>> > >> > >>>>>>>> Obrigada > >> > >>>>>>>> Luciana > >> > >>>>>>>> > >> > >>>>>>>> [As partes desta mensagem que não continham texto foram removidas] > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>> > >> > >>>>>>> > >> > >>>>>>> [As partes desta mensagem que não continham texto foram removidas] > >> > >>>>>>> > >> > >>>>>>> > >> > >>>>>>> > >> > >>>>>>> ------------------------------------ > >> > >>>>>>> > >> > >>>>>>> > >> > >>>>>>> ---------------------------------------------------------- > >> > >>>>>>>> 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/ > >> > >>>>>>> > >> > >>>>>>> ---------------------------------------------------------- > >> > >>>>>>>> Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » > >> > >>>>>>> Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO > >> > >>>>>> ESPAÇO! > >> > >>>>>>> VISITE: http://www.oraclebr.com.br/ > >> > >>>>>>> ---------------------------------------------------------- > >> > >>>>>>> Links do Yahoo! Grupos > >> > >>>>>> > > >> > >>>>>>> > >> > >>>>>>> > >> > >>>>>>> > >> > >>>>>> > >> > >>>>>> [As partes desta mensagem que não continham texto foram removidas] > >> > >>>>>> > >> > >>>>>> > >> > >>>>>> > >> > >>>>> > >> > >>>>> > >> > >>>>> [As partes desta mensagem que não continham texto foram removidas] > >> > >>>>> > >> > >>>>> > >> > >>>>> > >> > >>>>> ------------------------------------ > >> > >>>>> > >> > >>>>> > >> > >>>>> ---------------------------------------------------------- > >> > >>>>>> 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/ > >> > >>>>> > >> > >>>>> ---------------------------------------------------------- > >> > >>>>>> Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » > >> > >>>>> Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO > >> > >>>> ESPAÇO! > >> > >>>>> VISITE: http://www.oraclebr.com.br/ > >> > >>>>> ---------------------------------------------------------- > >> > >>>>> Links do Yahoo! Grupos > >> > >>>>> > >> > >>>>> > >> > >>>>> > >> > >>>> > >> > >>>> -- > >> > >>>> Bruno Sales > >> > >>>> > >> > >>>> [As partes desta mensagem que não continham texto foram removidas] > >> > >>>> > >> > >>>> > >> > >>>> > >> > >>> > >> > >>> > >> > >>> [As partes desta mensagem que não continham texto foram removidas] > >> > >>> > >> > >>> > >> > >>> > >> > >>> ------------------------------------ > >> > >>> > >> > >>> ---------------------------------------------------------- > >> > >>>> 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/ > >> > >>> ---------------------------------------------------------- > >> > >>>> Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure >>>> » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: >>>> http://www.oraclebr.com.br/ > >> > >>> ---------------------------------------------------------- Links do Yahoo! >>> Grupos > >> > >>> > >> > >>> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> >> > >> > >> [As partes desta mensagem que não continham texto foram removidas] > >> > >> > >> > >> ------------------------------------ > >> > >> ---------------------------------------------------------- > >>> 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/ > >> ---------------------------------------------------------- > >>> Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure >>> » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: >>> http://www.oraclebr.com.br/ > >> ---------------------------------------------------------- Links do Yahoo! >> Grupos > >> > >> > > > > > > > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > ------------------------------------ > > ---------------------------------------------------------- >> 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/ > ---------------------------------------------------------- >> Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » >> Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: >> http://www.oraclebr.com.br/ > ---------------------------------------------------------- Links do Yahoo! > Grupos > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -------------------------------------------------------------------------------------------------------------------------- >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/ -------------------------------------------------------------------------------------------------------------------------- >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » >Scripts » Tutoriais - 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: oracle_br-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html