Flávio, 

  Procure sobre deallocate unused.

http://www.idevelopment.info/data/Oracle/DBA_tips/Database_Administrat
ion/DBA_22.shtml

Abs


--- Em oracle_br@yahoogrupos.com.br, "Flavio Uyemura" <[EMAIL PROTECTED]> 
escreveu
>
> Hamilton,
> 
> Se você observou a documentação diz que a opção de "DROP STORAGE" é 
> utilizada por default, em caso de omissão, portanto no exemplo que 
eu 
> apresentei estou utilizando esta opção.
> 
> Abraços,
> Flávio
> 
> 
> >From: "hribeiro01" <[EMAIL PROTECTED]>
> >Reply-To: oracle_br@yahoogrupos.com.br
> >To: oracle_br@yahoogrupos.com.br
> >Subject: [oracle_br] Re: TRUNCATE TABLE BUG ?
> >Date: Fri, 17 Nov 2006 13:43:02 -0000
> >
> >Flávio,
> >
> >   Procure sobre reuse storage e drop storage;
> >
> >   http://www-eleves-
isia.cma.fr/documentation/OracleDoc/TRUNCATE.html
> >
> >Abs
> >
> >--- Em oracle_br@yahoogrupos.com.br, "Flavio Uyemura" <fcuyemura@>
> >escreveu
> > >
> > > Pessoal,
> > >
> > > Tenho processos de ETL que fazem basicamente o seguinte:
> > >
> > > 1) Carregam os dados de arquivos em formato texto para tabelas 
no
> >Oracle,
> > > utilizando o SQL*Loader com a opção de TRUNCATE e no modo DIRECT
> >PATH.
> > >
> > > 2) A partir destas tabelas de stage (área com dados brutos)
> >carregadas, um
> > > outro processo aplica transformações nestes dados, e insere em
> >outras
> > > tabelas de fatos e dimensões. Utilizando a hint /*+ PARALLEL
> >(<nometabela>,
> > > default, default) */
> > >
> > > 3) Após o passo 2, as tabelas de stage carregadas são 
truncadas, e
> >este
> > > ciclo repete-se diariamente.
> > >
> > > Acontece que quando as tabelas de stage são truncadas (passo 1 e
> >3), não
> > > ocorre a desalocação de espaço.
> > >
> > > A tablespace usada é do tipo LMT (Locally Managed Tablespace) 
com
> >SEGMENT
> > > SPACE
> > > MANAGEMENT AUTO e UNIFORM SIZE de 1M.
> > >
> > > Segue exemplo para ilustrar o problema:
> > >
> > >
> > > 11:13:25 SQL> create table st_teste
> > > 11:13:33   2  (
> > > 11:13:33   3    codigo     number,
> > > 11:13:33   4    nome       varchar2(128),
> > > 11:13:33   5    tipo       varchar2(18),
> > > 11:13:33   6    dt_criacao date
> > > 11:13:33   7  )
> > > 11:13:33   8  tablespace tbsp_stage_data;
> > >
> > > Tabela criada.
> > >
> > > 11:13:33 SQL> select segment_name, segment_type, 
tablespace_name,
> >blocks,
> > > extents, min_extents
> > > 11:13:38   2    from user_segments
> > > 11:13:38   3   where segment_name = 'ST_TESTE';
> > >
> > > SEGMENT_NAME         SEGMENT_TYPE
> >TABLESPACE_NAME
> > > BLOCKS    EXTENTS MIN_EXTENTS
> > > -------------------- ------------------ ------------------------
----
> >--
> > > ---------- ---------- -------
> > > ST_TESTE             TABLE
> >TBSP_STAGE_DATA
> > >    32          1           1
> > >
> > > 11:13:39 SQL>
> > > 11:13:40 SQL> insert /*+ PARALLEL(st_teste, default, default) */
> >into
> > > st_teste
> > > 11:13:45   2  select object_id, object_name, object_type, 
created
> > > 11:13:45   3    from user_objects;
> > >
> > > 182 linhas criadas.
> > >
> > > 11:13:45 SQL> commit;
> > >
> > > Validação completa.
> > >
> > > 11:13:45 SQL> declare
> > > 11:13:51   2  begin
> > > 11:13:52   3  for i in 1..10 loop
> > > 11:13:52   4  insert /*+ PARALLEL(st_teste, default, default) */
> >into
> > > st_teste
> > > 11:13:52   5  select /*+ PARALLEL(st_teste, default, default) */
> > > 11:13:52   6         *
> > > 11:13:52   7    from st_teste;
> > > 11:13:52   8  end loop;
> > > 11:13:52   9  commit;
> > > 11:13:52  10  end;
> > > 11:13:52  11  /
> > >
> > > Procedimento PL/SQL concluído com sucesso.
> > >
> > > 11:13:54 SQL> select count(*) from st_teste;
> > >
> > >   COUNT(*)
> > > ----------
> > >     186368
> > >
> > > 11:14:01 SQL> select segment_name, segment_type, 
tablespace_name,
> >blocks,
> > > extents, min_extents
> > > 11:14:10   2    from user_segments
> > > 11:14:10   3   where segment_name = 'ST_TESTE';
> > >
> > > SEGMENT_NAME         SEGMENT_TYPE
> >TABLESPACE_NAME
> > > BLOCKS    EXTENTS MIN_EXTENTS
> > > -------------------- ------------------ ------------------------
----
> >--
> > > ---------- ---------- -------
> > > ST_TESTE             TABLE
> >TBSP_STAGE_DATA
> > >   288          9           1
> > >
> > > 11:14:10 SQL> truncate table st_teste;
> > >
> > > Tabela truncada.
> > >
> > > 11:14:22 SQL> select count(*) from st_teste;
> > >
> > >   COUNT(*)
> > > ----------
> > >          0
> > >
> > > 11:14:28 SQL> select segment_name, segment_type, 
tablespace_name,
> >blocks,
> > > extents, min_extents
> > > 11:14:34   2    from user_segments
> > > 11:14:34   3   where segment_name = 'ST_TESTE';
> > >
> > > SEGMENT_NAME         SEGMENT_TYPE
> >TABLESPACE_NAME
> > > BLOCKS    EXTENTS MIN_EXTENTS
> > > -------------------- ------------------ ------------------------
----
> >--
> > > ---------- ---------- -------
> > > ST_TESTE             TABLE
> >TBSP_STAGE_DATA
> > >   288          9           1
> > >
> > >
> > > *** Veja o que acontece quando é utilizado o ALTER TABLE MOVE 
***
> > >
> > > 11:17:08 SQL> alter table st_teste move;
> > >
> > > Tabela alterada.
> > >
> > > 11:17:23 SQL> select segment_name, segment_type, 
tablespace_name,
> >blocks,
> > > extents, min_extents
> > > 11:17:33   2    from user_segments
> > > 11:17:33   3   where segment_name = 'ST_TESTE';
> > >
> > > SEGMENT_NAME         SEGMENT_TYPE
> >TABLESPACE_NAME
> > > BLOCKS    EXTENTS MIN_EXTENTS
> > > -------------------- ------------------ ------------------------
----
> >--
> > > ---------- ---------- -------
> > > ST_TESTE             TABLE
> >TBSP_STAGE_DATA
> > >    32          1           1
> > >
> > >
> > > *** O número de extents voltou ao min_extents ***
> > >
> > > A pergunta que não quer calar...é algum BUG no TRUNCATE TABLE ?
> > >
> > >
> > > 11:17:33 SQL> select * from v$version
> > > 11:20:30   2  ;
> > >
> > > BANNER
> > > ----------------------------------------------------------------
> > > Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
> > > PL/SQL Release 9.2.0.6.0 - Production
> > > CORE    9.2.0.6.0       Production
> > > TNS for Solaris: Version 9.2.0.6.0 - Production
> > > NLSRTL Version 9.2.0.6.0 - Production
> > >
> > > 11:20:32 SQL>
> > >
> > > Abraços,
> > > Flávio
> > >
> > > 
_________________________________________________________________
> > > Descubra aqui como mandar Torpedos Messenger!
> > > http://www.msn.com.br/artigos/maguire/default.asp
> > > http://www.msn.com.br/artigos/maguire/default.asp
> > >
> >
> >
> >
> >
> >
> >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
> >
> >
> >
> 
> _________________________________________________________________
> Chegou o Windows Live Spaces com rede social. Confira 
> http://spaces.live.com/
>





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

 

Responder a