Caro Eduardo:

a - você escreveu que "ela é populada uma única vez no começo do relatório, 
depois o relatório dá um select nela e pronto". Então, a utilização da GTT não 
se faz necessária, correto? Você não pode construir o relatório diretamente com 
a query, ao invés de utilizar a GTT?

b - SE você OBRIGATORIAMENTE tem de utilizar a GTT, então, conforme em 
http://psoug.org/reference/gtt.html, "You can not specify a tablespace with 
global       temporary tables. GTT's are built in the TEMP tablespace.", as 
GTT'S são construídas e populadas na TEMP. Uma vez que você afirmou que estava 
investigando o erro "ORA-01652: unable to extend temp segment by 128 in 
tablespace TEMP", então sente ao lado do seu DBA e verifique esta infromação 
com 
ele, ok?

c - Você também escreveu que "Essa tabela é uma global temporária, ou seja, o 
conteúdo dela só existe durante a sessão do relatório...". Uma vez que foi 
utilizada a cláusula "on commit preserve rows", esta irá perdurar por TODA a 
SESSÃO do BANCO DE DADOS, ou seja, até o usuário efetuar o LOGOUT, o que 
entendo 
que não é o seu objetivo. Utilizando "on commit preserve rows", cada usuário 
que 
logar e utilizar o relatório estará consumindo espaço desnecessário na TEMP, 
até 
o mesmo efetuar o LOGOUT. Será que esse não é um dos motivos do erro 
"ORA-01652"?


Atenciosamente,

Márcio de Figueiredo Moura e Castro




________________________________
De: Tiago de Assis Pimenta <[email protected]>
Para: [email protected]
Enviadas: Segunda-feira, 21 de Março de 2011 8:25:43
Assunto: Re: Res: [oracle_br] Global temporary table

  
O hint APPEND é indicado para tabelas que você não dá delete, ou seja, que não 
tenha espaços entre os registros. Como a sua tabela é temporária, acredito que 
seja sim uma boa opção usar esse hint.

Mas vamos aguardar os nossos colegas ae para ver o que eles dizem !!!

[ ]s

--- Em dom, 20/3/11, Eduardo Schurtz <[email protected]> escreveu:

De: Eduardo Schurtz <[email protected]>
Assunto: Re: Res: [oracle_br] Global temporary table
Para: [email protected]
Cc: "MARCIO CASTRO" <[email protected]>
Data: Domingo, 20 de Março de 2011, 18:38

Fernando, Marcio e Anderson...

Desculpem pela demora, mas estava aguardando um retorno do cliente!

Essa tabela é uma global temporária, ou seja, o conteúdo dela só existe
durante a sessão do relatório...

Não faço DELETE nela... ela é populada uma única vez no começo do relatório,
depois o relatório dá um select nela e pronto!

Assim que o relatório é fechado, ela é esvaziada pelo oracle.

Então pergunto, seria útil e viável usar o hint APPEND??

Obrigado!

--
Eduardo Schurtz

2011/3/16 MARCIO CASTRO <[email protected]>

>
>
> Caro Eduardo:
>
> O problema da temp foi resolvido?
>
> No aguardo,
>
> Márcio de Figueiredo Moura e Castro
>
> ________________________________
> De: Anderson Araujo de Oliveira <[email protected]>
>
> Para: [email protected]
> Enviadas: Quarta-feira, 16 de Março de 2011 14:41:19
> Assunto: Res: [oracle_br] Global temporary table
>
>
> Cuidado com o uso excessivo do hint APPEND, se sua tabela sofre deletes
> tbm, vc
> podera ter uma tabela/tablespace gigantesca mas nao estar usando nem 50%
> desse
> tamanho
> Tenha em mente que quando usar o APPEND o Oracle sempre irá inserir APÓS a
> HWM,
> e por isso ele fica mais rapido, porque não valida se tem blocos vazios
> abaixo
> dela que podem ser utilizados durante um insert, assim, espaço liberado em
> deletes nao serão reutilizados pelos inserts
>
> ________________________________
> De: Fernando Nati <[email protected]>
> Para: [email protected]
> Enviadas: Quarta-feira, 16 de Março de 2011 15:25:22
> Assunto: Re: [oracle_br] Global temporary table
>
> Será que o uso do hint APPEND no insert não ajudaria ???
>
> ex.
> INSERT /*+ *APPEND* */ INTO tabela_temp
> SELECT * FROM blablabla;
>
> Fernando
>
> 2011/3/16 Eduardo Schurtz <[email protected]>
>
> > Bom dia Marcio.
> >
> > Como falei, as queries sozinhas rodam rápido... Mas dentro do insert,
> levam
> > um tempão!
> >
> > O banco é 10.2.0.4.0.
> >
> > Segundo o DBA, a tablespace tem bastante espaço sobrando...
> >
> > Obrigado.
> >
> > --
> > Eduardo Schurtz
> >
> >
> > 2011/3/16 MARCIO CASTRO <[email protected]>
> >
> > >
> > >
> > > Caro Eduardo:
> > >
> > > Não é a query do insert que está ocasionando este problema?
> > > Você verificou o plano de execução da mesma?
> > > Qual é a versão do banco e o tamanho da tablespace temporária?
> > > Verifique as views v$temp_usage e v$session_longops. Em última
> instância
> > > (não
> > > é um trocadilho...), se você reiniciar o banco, a tablespace temporária
> > > será
> > > limpa.
> > >
> > > Atenciosamente,
> > >
> > > Márcio de Figueiredo Mourae Castro
> > >
> > > ________________________________
> > > De: Eduardo Schurtz <[email protected]>
> > > Para: [email protected]
> > > Enviadas: Quarta-feira, 16 de Março de 2011 1:45:36
> > > Assunto: [oracle_br] Global temporary table
> > >
> > >
> > > Pessoal, boa noite.
> > >
> > > Existe alguma situação em que a inclusão de registros numa tabela
> > > temporária
> > > possa ser MUITO lenta?
> > >
> > > Eu tenho algumas queries que quando executadas separadamente, retornam
> os
> > > registros rapidamente. Mas ao tentar inserir esses registros numa
> tabela
> > > temporária, demora muito mais.
> > >
> > > Faço a inclusão com insert direto:
> > >
> > > insert into TABELA (
> > > select ...
> > > from (
> > > query 1
> > > UNION ALL
> > > query 2
> > > ...
> > >
> > > A definição da tabela é essa:
> > >
> > > create global temporary table TABELA
> > > (
> > > campo 1
> > > campo 2
> > > ...
> > > campo 5
> > > )
> > > on commit preserve rows;
> > >
> > > Na verdade, tenho um programa rodando no EBS que está dando o seguinte
> > > erro:
> > >
> > > ORA-01652: unable to extend temp segment by 128 in tablespace TEMP
> > >
> > > Então estava tentando simular no banco, então notei que este insert
> está
> > > demorando muito.
> > >
> > > O banco é 10.2.0.4.0.
> > >
> > > Att,
> > >
> > > --
> > > Eduardo Schurtz
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > > [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/[email protected]/
> >
> > ----------------------------------------------------------
> > >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]
>
> [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/[email protected]/ 
----------------------------------------------------------
>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]

Responder a