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

<*> 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


Responder a