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

2009-04-03 Por tôpico Júlio César Corrêa
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 

> 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 
>
>   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  ON X
>> (DATARETIRADA, BNF_NR)
>> NOLOGGING
>> NOPARALLEL;
>>
>> Query:
>> SELECT BNF_NR, PREMIO, TO_CHAR(DATARETIRADA,''MMDDHHMISS'') AS
>> DATARETIRADA, STATUS FROM X 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]





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




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

2009-04-03 Por tôpico Júlio César Corrêa
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 

>   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  ON X
> (DATARETIRADA, BNF_NR)
> NOLOGGING
> NOPARALLEL;
>
> Query:
> SELECT BNF_NR, PREMIO, TO_CHAR(DATARETIRADA,''MMDDHHMISS'') AS
> DATARETIRADA, STATUS FROM X 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


[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




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

2009-04-03 Por tôpico Caio Spadafora

Mauricio,

Você consegue nos enviar o plano de execução? Em relação a utilizar o índice ou 
não vai depender de algumas coisas, como você faz acesso a todos as linhas da 
tabela a utilização do índice pode não ser vantajosa, como são somente quatro 
colunas de repente fazendo uso de IOT algum ganho de performance pode existir 
mas precisariamos testar.

Mande o plano de execução, as vezes não teremos muito como otimizar o SQL, 
existem hints como /*+ all_rows */ e se você tiver um tempo de FETCH alto nessa 
consulta você pode aumentar o array_size do sql*plus (caso você esteja 
visualizando esses dados nessa interface)... resumindo, mande o plano de 
execução e se possivel o trace dessa consulta... ai talvez fique mais facil de 
te ajudar.

[]'s
Caio Spadafora.
http://0011brothers.blogspot.com/

--- Em sex, 3/4/09, Mauricio Lobão  escreveu:

De: Mauricio Lobão 
Assunto: [oracle_br] Order by tabela temporaria com 4 MI registro. Como fazer ?
Para: oracle_br@yahoogrupos.com.br
Data: Sexta-feira, 3 de Abril de 2009, 17:53












Pessoal,



To com um problema...to precisando otimizar a performance de uma 
rotinaexiste 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  ON X

(DATARETIRADA, BNF_NR)

NOLOGGING

NOPARALLEL;



Query:

SELECT BNF_NR, PREMIO, TO_CHAR(DATARETIRAD A,''MMDDHHMI SS'') AS 
DATARETIRADA, STATUS FROM X ORDER BY DATARETIRADA, BNF_NR



Agradeço desde já.




 

  




 

















  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]



[oracle_br] Order by tabela temporaria com 4 MI registro. Como fazer ?

2009-04-03 Por tôpico Mauricio Lobão
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  ON X
(DATARETIRADA, BNF_NR)
NOLOGGING
NOPARALLEL;

Query:
SELECT BNF_NR, PREMIO, TO_CHAR(DATARETIRADA,''MMDDHHMISS'') AS 
DATARETIRADA, STATUS FROM X ORDER BY DATARETIRADA, BNF_NR


Agradeço desde já.