http://www.oracle.com/technology/products/oracle9i/datasheets/iots/iot_ds.html

--- Em sex, 3/4/09, Mauricio Lobão <mauricio.lo...@gmail.com> escreveu:

De: Mauricio Lobão <mauricio.lo...@gmail.com>
Assunto: [oracle_br] Re: Order by tabela temporaria com 4 MI registro. Como 
fazer ?
Para: oracle_br@yahoogrupos.com.br
Data: Sexta-feira, 3 de Abril de 2009, 19:40











    
            Ahh...não conheço o conceito de IOT...tem algum lugar onde possa 
aprender ?



--- Em oracle...@yahoogrup os.com.br, Mauricio Lobão <mauricio.lobao@ ....> 
escreveu

>

> Caio,

> 

> Eu preciso de todos os dados....eu faço um loop percorrendo as partições de 
> uma tabela e inserindo nesta temporaria.. .que irá retornar o cursor com 
> todos estes dados ordenados...

> 

> 

> PROCEDURE RETIRADA_PREMIOS( QUEUE_CODE VARCHAR2,

>                             DATA_RETIRADA_ INICIAL VARCHAR2,

>                             DATA_RETIRADA_ FINAL VARCHAR2,

>                             OUT_SERVICE OUT REF_CURSOR)

> 

> OPEN OUT_SERVICE FOR 'SELECT BNF_NR, PREMIO, TO_CHAR(DATARETIRAD 
> A,''YYYYMMDDHHMI SS'') AS DATARETIRADA, STATUS, MSISDN FROM ADMINPROV2_10. 
> MED_RETIRADA_ PREMIOS_TEMP ORDER BY DATARETIRADA, BNF_NR ';

> 

> Quando fui realizar o trace deu o seguinte erro:

> SQL> set autot on

> SP2-0618: Cannot find the Session Identifier.  Check PLUSTRACE role is enabled

> SP2-0611: Error enabling STATISTICS report

> 

> Abs

> 

> --- Em oracle...@yahoogrup os.com.br, Caio Spadafora <caiospadafora@ > 
> escreveu

> >

> > Mauricio,

> > 

> > Nesse caso, considerando que a lógica utilizada é a unica possibilidade, 
> > você vai ter que atuar em outras camadas. Uma sugestão seria utilizar uma 
> > tabela particionada pelo campo de data, mas mesmo assim, se você precisasse 
> > de TODOS os registros de nada adiantaria.

> > 

> > Antes de executar um trace, explique um pouco mais do fluxo de dados..

> > 

> > Você monta essa tabela temporario, busca os 4 milhões de registros 
> > ordenados por um determinado conjunto de colunas e depois faz o que com os 
> > dados?

> > 

> > Você conhece o conceito de IOT?

> > 

> > Atenciosamente,

> > Caio Spadafora.

> > http://0011brothers .blogspot. com/

> > 

> > --- Em sex, 3/4/09, Mauricio Lobão <mauricio.lobao@ > escreveu:

> > 

> > De: Mauricio Lobão <mauricio.lobao@ >

> > Assunto: [oracle_br] Re: Order by tabela temporaria com 4 MI registro. Como 
> > fazer ?

> > Para: oracle...@yahoogrup os.com.br

> > Data: Sexta-feira, 3 de Abril de 2009, 19:16

> > 

> > 

> > 

> > 

> > 

> > 

> > 

> > 

> > 

> > 

> > 

> >     

> >             Eu preciso retornar um cursor com esses dados da tabela 
> > temporaria ordenados por este campo...

> > 

> > 

> > 

> > OPEN OUT_SERVICE FOR 'SELECT BNF_NR, PREMIO, TO_CHAR(DATARETIRAD 
> > A,''YYYYMMDDHHMI SS'') AS DATARETIRADA, STATUS, MSISDN FROM XXXXX ORDER BY 
> > DATARETIRADA, BNF_NR ';

> > 

> > 

> > 

> > Ja utilizo Bulk para realizar a inserção na tabela temporaria.. .. .

> > 

> > 

> > 

> > Abs

> > 

> > 

> > 

> > --- Em oracle...@yahoogrup os.com.br, Júlio César Corrêa <juliotubista@ 
> > ...> escreveu

> > 

> > >

> > 

> > > no sqlplus:

> > 

> > > set timing on

> > 

> > > set autot on

> > 

> > > 

> > 

> > > para testar i plano sem executar a consulta:

> > 

> > > 

> > 

> > > set autot traceonly explain

> > 

> > > 

> > 

> > > 2009/4/3 Júlio César Corrêa <juliotubista@ ...>

> > 

> > > 

> > 

> > > > NAO.

> > 

> > > > Porque você ordenaria?

> > 

> > > > Tem que ter uma justificativa bem elaborada para tal.

> > 

> > > >

> > 

> > > > Após o seu loop percorrer e tal,e você colocar os seus registros em

> > 

> > > > memória,o que você faz com estes 4MI de registros?

> > 

> > > >

> > 

> > > > O Oracle simplesmente vai tentar ordenar todas os 4 MILHOES de 
> > > > registros em

> > 

> > > > memória ,caso não consiga,vai fazer isso em disco(segmento da tablespace

> > 

> > > > temporária).

> > 

> > > >

> > 

> > > > Você tem um loop que faz o processamento linha a linha ok?

> > 

> > > > Não há possibilidade de colocá-lo em lotes ou blocos e inseri-los?Usando

> > 

> > > > Bulk e tal ?

> > 

> > > >

> > 

> > > > Vai um link para você dar uma olhada e ver se pode usar algo parecido.Na

> > 

> > > > internet tem varios exemplos,site da oracle ou a galera do grupo pode 
> > > > ajudar

> > 

> > > > quando tiver sem um norte.

> > 

> > > >

> > 

> > > > http://mportes. blogspot. com/2007/ 03/bulk-collect_ 12.html

> > 

> > > >

> > 

> > > > Dependendo do que você faz,poderia usar

> > 

> > > >  2009/4/3 Mauricio Lobão <mauricio.lobao@ ...>

> > 

> > > >

> > 

> > > >   Pessoal,

> > 

> > > >>

> > 

> > > >> To com um problema...to precisando otimizar a performance de uma

> > 

> > > >> rotina...existe uma query em cima de uma tabela temporaria que possui 4

> > 

> > > >> milhoes de registros... a tabela é indexada por estes dois campos

> > 

> > > >> (DATARETIRADA, BNF_NR) que são utilizados na ordenação.

> > 

> > > >>

> > 

> > > >> Minha dúvida...é necessário realizar a ordenação na tabela já que 
> > > >> possui

> > 

> > > >> este indice ? O insert nesta tabela é feito através de um loop que 
> > > >> percorre

> > 

> > > >> as partições de uma tabela e insere nesta temporaria.

> > 

> > > >>

> > 

> > > >> Alguem tem outra solução para este problema ?

> > 

> > > >>

> > 

> > > >> Indice:

> > 

> > > >> CREATE INDEX XXXX ON XXXXX

> > 

> > > >> (DATARETIRADA, BNF_NR)

> > 

> > > >> NOLOGGING

> > 

> > > >> NOPARALLEL;

> > 

> > > >>

> > 

> > > >> Query:

> > 

> > > >> SELECT BNF_NR, PREMIO, TO_CHAR(DATARETIRAD A,''YYYYMMDDHHMI SS'') AS

> > 

> > > >> DATARETIRADA, STATUS FROM XXXXXXXXX ORDER BY DATARETIRADA, BNF_NR

> > 

> > > >>

> > 

> > > >> Agradeço desde já.

> > 

> > > >>

> > 

> > > >>  

> > 

> > > >>

> > 

> > > >

> > 

> > > >

> > 

> > > >

> > 

> > > > --

> > 

> > > > Júlio César Corrêa

> > 

> > > > IS Technologist - Oracle DBA

> > 

> > > > http://jccorrea. blogspot. com

> > 

> > > >

> > 

> > > > "To stay competitive in the tech industry, never stop

> > 

> > > > learning. Always be on the lookout for better ways of

> > 

> > > > doing things and new technologies. Our industry does

> > 

> > > > not reward people who let themselves stagnate"

> > 

> > > > -John Hall, Senior Vice President, Oracle University

> > 

> > > >

> > 

> > > >

> > 

> > > 

> > 

> > > 

> > 

> > > -- 

> > 

> > > Júlio César Corrêa

> > 

> > > IS Technologist - Oracle DBA

> > 

> > > http://jccorrea. blogspot. com

> > 

> > > 

> > 

> > > "To stay competitive in the tech industry, never stop

> > 

> > > learning. Always be on the lookout for better ways of

> > 

> > > doing things and new technologies. Our industry does

> > 

> > > not reward people who let themselves stagnate"

> > 

> > > -John Hall, Senior Vice President, Oracle University

> > 

> > > 

> > 

> > > 

> > 

> > > [As partes desta mensagem que não continham texto foram removidas]

> > 

> > >

> > 

> > 

> > 

> > 

> >  

> > 

> >       

> > 

> >     

> >     

> >     

> >      

> >     

> >     

> > 

> > 

> > 

> > 

> > 

> > 

> > 

> > 

> >     

> > 

> > 

> >     

> >     

> > 

> > 

> >       Veja quais são os assuntos do momento no Yahoo! +Buscados

> > http://br.maisbusca dos.yahoo. com

> > 

> > [As partes desta mensagem que não continham texto foram removidas]

> >

>




 

      

    
    
        
         
        
        








        


        
        


      Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]

Responder a