Re: [oracle_br] Otimização do Delete

2018-06-12 Por tôpico Tércio Costa terciosilvaco...@gmail.com [oracle_br]
Faça um cursor, com open e fetch com bulk collect com um limit razoavel e
depois um FORALL seguido de update, isso dentro de um loop, o fetch, o
update e o commit;




Em ter, 12 de jun de 2018 às 17:47, Eduardo Souza pjabran...@gmail.com
[oracle_br]  escreveu:

>
>
> Caros amigos, boa noite!
>
> Esse assunto já deve ter rolado aqui no grupo:
>
> Como otimizar um delete de uma quantidade bem grande de linhas (não é a
> tabela inteira).
>
> Grande abraço.
> 
>


-- 

[image: photo]
*Tércio Costa, *
*Oracle Certified SQL Expert, ACE Associate, Dell Experts*
Analista de Dados, Unimed João Pessoa
m:+55 83 9 9915 9168  | w:
https://oraclepress.wordpress.com/  |




[oracle_br] Otimização do Delete

2018-06-12 Por tôpico Eduardo Souza pjabran...@gmail.com [oracle_br]
Caros amigos, boa noite!

Esse assunto já deve ter rolado aqui no grupo:

Como otimizar um delete de uma quantidade bem grande de linhas (não é a
tabela inteira).

Grande abraço.


Re: [oracle_br] Otimização de query

2011-07-25 Por tôpico Ricardo Tajiri
Oi Ana,

Um grande problema aí, além do que o pessoal já disse do translate e etc
é que você usa o LIKE '%valor%'.

Assim, o primeiro % já mata um índice que tiver na coluna, e o ultimo um
suposto índice REVERSE. Com isso eu acredito que não tenha muito jeito
de melhorar sua consulta, a única saída que eu vejo é usando índices CTX.
E na sua busca, ao invés de usar o LIKE, usar o CONTAINS.

Att.
Ricardo Hideyuki Tajiri
LaRCom - FEEC - UNICAMP


Em 25 de julho de 2011 11:36, Marcos de Moura Gonçalves
escreveu:

> Mais um detalhe... rs Pelo SQL que vc mandou não dá pra saber se a
> aplicação
> está ou não usando BIND VARIABLES, mas infelizmente é muito comum encontrar
> aplicações que não fazem uso... Quando vc usa BIND VARIABLES para passar
> parâmetros na sua query, a query enviada para o Oracle é sempre igual (os
> parâmetros vão separadamente), o que significa que o Oracle poderá
> reaproveitar o plano de execução da query nas execuções subsequentes, o que
> é muito valioso em termos de peformance em queries que são executadas
> várias
> vezes. Quando vc concatena os parâmetros no texto da query, obviamente a
> query é diferente, e em cada execução da query o Oracle gasta tempo
> calculando o plano de execução. Essa é uma boa prática de desenvolvimento
> que sempre deve ser utilizada. Não sei qual a arquitetura usada na sua
> aplicação, mas segue um link interessante para Java-Hibernate:
>
> http://www.mkyong.com/hibernate/hibernate-parameter-binding-examples/
>
>
> Em 25 de julho de 2011 10:50, Marcos de Moura Gonçalves
> escreveu:
>
> > Outro teste que vc pode fazer (visando melhorar a performance da query) é
> > trocar o OR por um UNION. A sua query está assim:
> >
> > SELECT ...
> > FROM ...
> > WHERE clausaulaA AND clausulaB AND (clausulaC OR clausulaD) AND
> clausulaE;
> >
> > Experimente assim para ver se melhora:
> >
> > SELECT ...
> > FROM ...
> > WHERE clausaulaA AND clausulaB AND clausulaC AND clausulaE
> > UNION
> > SELECT ...
> > FROM ...
> > WHERE clausaulaA AND clausulaB AND clausulaD AND clausulaE;
> >
> > A princípio, a lógica leva a crer que é uma estratégia pior, mas já
> > aconteceram vários casos comigo que a query melhorou muito apenas
> retirando
> > o OR (em um caso, foi de 30s para 0.8s). Preste atenção para o fato de
> que
> > um UNION vai fazer um GROUP BY na sua query, o que, pelo menos no meu
> caso,
> > foi melhor do que o UNION ALL, já que vários registros vinham repetidos
> nas
> > duas queries do UNION.
> >
> > []s
> >
> > Marcos
> >
> >
> > Em 25 de julho de 2011 10:38, Marcos de Moura Gonçalves <
> > mgmar...@gmail.com> escreveu:
> >
> > Bom dia Ana,
> >>
> >> Pelo que percebi, o seu translate está sendo feito para que a busca não
> >> seja em cima da string literal, mas independente de acentos e letras
> >> maiúsculas/minúsculas. A minha pergunta pra vc é: em algum momento vc
> >> realmente precisa que alguma busca seja em cima da string literal? Se a
> sua
> >> resposta for não, vc pode alterar alguns parâmetros de sessão que fazem
> com
> >> que todas as buscas se comportem dessa forma, eliminando a necessidade
> de
> >> fazer esse translate. Uma forma de vc fazer isso é criando uma trigger
> de
> >> logon, que altera essas variáveis de sessão em todo logon no banco de
> dados:
> >>
> >> CREATE OR REPLACE TRIGGER SYS.global_nls_session_stn
> >>AFTER LOGON ON DATABASE
> >> BEGIN
> >>EXECUTE IMMEDIATE 'alter session set NLS_COMP=LINGUISTIC';
> >>EXECUTE IMMEDIATE 'alter session set NLS_SORT=BINARY_AI';
> >> END;
> >>
> >> Essas duas variáveis de sessão é q fazem essa mágica: NLS_COMP e
> NLS_SORT.
> >> Pesquise sobre elas na net.
> >>
> >> Um detalhe: quando vc usa o SQL Developer (e outros programas do tipo),
> >> ele força essas variáveis de sessão depois de fazer o logon. O que acaba
> >> acontecendo é que a trigger é executada depois do logon, e logo em
> seguida o
> >> próprio developer altera essas variáveis para os valores que estão
> >> configurados nele. Pra vc alterar essas variáveis dentro do developer,
> vá em
> >> Tools > Preferences... > Database > NLS e altere Sort para BINARY_CI e
> >> Comparison para LINGUISTIC. Antes de criar a trigger sugerida, vc pode
> >> simplesmente alterar esses parâmetros no seu developer e testar a query
> sem
> >> o translate.
> >>
> >> []s
> >>
> >> Marcos
> >>
> >>
> >>
> >>
> >> Em 25 de julho de 2011 10:05, Ana Cássia Japiassu Diniz <
> >> anajapia...@gmail.com> escreveu:
> >>
> >>> **
> >>>
> >>>
> >>> Olá Pessoal, bom dia.
> >>>
> >>>
> >>> A query abaixo está muito lenta, acredito que o problema esteja no uso
> do
> >>> translate.
> >>>
> >>> O problema é o seguinte... temos um campo para o usuário digitar: rua,
> >>> bairro, cidade, estado e a medida q ele vai digitando, consultas vão
> >>> sendo
> >>> realizadas,, como a consulta demora um pouco, as requisições vão se
> >>> atropelando (eu acho) e acaba q a aplicação perde a conexão com o
> banco.
> >>> Segue a query exemplo para vocês darem uma olhada.
> 

Re: [oracle_br] Otimização de query

2011-07-25 Por tôpico Marcos de Moura Gonçalves
Mais um detalhe... rs Pelo SQL que vc mandou não dá pra saber se a aplicação
está ou não usando BIND VARIABLES, mas infelizmente é muito comum encontrar
aplicações que não fazem uso... Quando vc usa BIND VARIABLES para passar
parâmetros na sua query, a query enviada para o Oracle é sempre igual (os
parâmetros vão separadamente), o que significa que o Oracle poderá
reaproveitar o plano de execução da query nas execuções subsequentes, o que
é muito valioso em termos de peformance em queries que são executadas várias
vezes. Quando vc concatena os parâmetros no texto da query, obviamente a
query é diferente, e em cada execução da query o Oracle gasta tempo
calculando o plano de execução. Essa é uma boa prática de desenvolvimento
que sempre deve ser utilizada. Não sei qual a arquitetura usada na sua
aplicação, mas segue um link interessante para Java-Hibernate:

http://www.mkyong.com/hibernate/hibernate-parameter-binding-examples/


Em 25 de julho de 2011 10:50, Marcos de Moura Gonçalves
escreveu:

> Outro teste que vc pode fazer (visando melhorar a performance da query) é
> trocar o OR por um UNION. A sua query está assim:
>
> SELECT ...
> FROM ...
> WHERE clausaulaA AND clausulaB AND (clausulaC OR clausulaD) AND clausulaE;
>
> Experimente assim para ver se melhora:
>
> SELECT ...
> FROM ...
> WHERE clausaulaA AND clausulaB AND clausulaC AND clausulaE
> UNION
> SELECT ...
> FROM ...
> WHERE clausaulaA AND clausulaB AND clausulaD AND clausulaE;
>
> A princípio, a lógica leva a crer que é uma estratégia pior, mas já
> aconteceram vários casos comigo que a query melhorou muito apenas retirando
> o OR (em um caso, foi de 30s para 0.8s). Preste atenção para o fato de que
> um UNION vai fazer um GROUP BY na sua query, o que, pelo menos no meu caso,
> foi melhor do que o UNION ALL, já que vários registros vinham repetidos nas
> duas queries do UNION.
>
> []s
>
> Marcos
>
>
> Em 25 de julho de 2011 10:38, Marcos de Moura Gonçalves <
> mgmar...@gmail.com> escreveu:
>
> Bom dia Ana,
>>
>> Pelo que percebi, o seu translate está sendo feito para que a busca não
>> seja em cima da string literal, mas independente de acentos e letras
>> maiúsculas/minúsculas. A minha pergunta pra vc é: em algum momento vc
>> realmente precisa que alguma busca seja em cima da string literal? Se a sua
>> resposta for não, vc pode alterar alguns parâmetros de sessão que fazem com
>> que todas as buscas se comportem dessa forma, eliminando a necessidade de
>> fazer esse translate. Uma forma de vc fazer isso é criando uma trigger de
>> logon, que altera essas variáveis de sessão em todo logon no banco de dados:
>>
>> CREATE OR REPLACE TRIGGER SYS.global_nls_session_stn
>>AFTER LOGON ON DATABASE
>> BEGIN
>>EXECUTE IMMEDIATE 'alter session set NLS_COMP=LINGUISTIC';
>>EXECUTE IMMEDIATE 'alter session set NLS_SORT=BINARY_AI';
>> END;
>>
>> Essas duas variáveis de sessão é q fazem essa mágica: NLS_COMP e NLS_SORT.
>> Pesquise sobre elas na net.
>>
>> Um detalhe: quando vc usa o SQL Developer (e outros programas do tipo),
>> ele força essas variáveis de sessão depois de fazer o logon. O que acaba
>> acontecendo é que a trigger é executada depois do logon, e logo em seguida o
>> próprio developer altera essas variáveis para os valores que estão
>> configurados nele. Pra vc alterar essas variáveis dentro do developer, vá em
>> Tools > Preferences... > Database > NLS e altere Sort para BINARY_CI e
>> Comparison para LINGUISTIC. Antes de criar a trigger sugerida, vc pode
>> simplesmente alterar esses parâmetros no seu developer e testar a query sem
>> o translate.
>>
>> []s
>>
>> Marcos
>>
>>
>>
>>
>> Em 25 de julho de 2011 10:05, Ana Cássia Japiassu Diniz <
>> anajapia...@gmail.com> escreveu:
>>
>>> **
>>>
>>>
>>> Olá Pessoal, bom dia.
>>>
>>>
>>> A query abaixo está muito lenta, acredito que o problema esteja no uso do
>>> translate.
>>>
>>> O problema é o seguinte... temos um campo para o usuário digitar: rua,
>>> bairro, cidade, estado e a medida q ele vai digitando, consultas vão
>>> sendo
>>> realizadas,, como a consulta demora um pouco, as requisições vão se
>>> atropelando (eu acho) e acaba q a aplicação perde a conexão com o banco.
>>> Segue a query exemplo para vocês darem uma olhada.
>>>
>>> Desde já agradeço.
>>>
>>> Ana Cássia
>>>
>>> SELECT logradouro.TLO_TX,
>>> logradouro.LOG_NO,
>>> bairro.BAI_NO,
>>> localidade.LOC_NO,
>>> logradouro.UFE_SG,
>>> logradouro.CEP
>>> FROM LOG_LOGRADOURO logradouro,
>>> LOG_BAIRRO bairro,
>>> LOG_LOCALIDADE localidade
>>> WHERE bairro.BAI_NU = logradouro.BAI_NU_INI
>>> AND localidade.LOC_NU = logradouro.LOC_NU
>>> AND (
>>> lower(translate(logradouro.LOG_NO,
>>> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
>>> 'AaOoCcNn')) LIKE
>>> translate('%pinheiros%',
>>> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
>>> 'AaOoCcNn')
>>> OR
>>> lower(translate(logradouro.TLO_TX || ' ' || logradouro.LOG_NO,
>>> 'ÁÃÀÄÂá

Re: [oracle_br] Otimização de query

2011-07-25 Por tôpico Marcos de Moura Gonçalves
Outro teste que vc pode fazer (visando melhorar a performance da query) é
trocar o OR por um UNION. A sua query está assim:

SELECT ...
FROM ...
WHERE clausaulaA AND clausulaB AND (clausulaC OR clausulaD) AND clausulaE;

Experimente assim para ver se melhora:

SELECT ...
FROM ...
WHERE clausaulaA AND clausulaB AND clausulaC AND clausulaE
UNION
SELECT ...
FROM ...
WHERE clausaulaA AND clausulaB AND clausulaD AND clausulaE;

A princípio, a lógica leva a crer que é uma estratégia pior, mas já
aconteceram vários casos comigo que a query melhorou muito apenas retirando
o OR (em um caso, foi de 30s para 0.8s). Preste atenção para o fato de que
um UNION vai fazer um GROUP BY na sua query, o que, pelo menos no meu caso,
foi melhor do que o UNION ALL, já que vários registros vinham repetidos nas
duas queries do UNION.

[]s

Marcos


Em 25 de julho de 2011 10:38, Marcos de Moura Gonçalves
escreveu:

> Bom dia Ana,
>
> Pelo que percebi, o seu translate está sendo feito para que a busca não
> seja em cima da string literal, mas independente de acentos e letras
> maiúsculas/minúsculas. A minha pergunta pra vc é: em algum momento vc
> realmente precisa que alguma busca seja em cima da string literal? Se a sua
> resposta for não, vc pode alterar alguns parâmetros de sessão que fazem com
> que todas as buscas se comportem dessa forma, eliminando a necessidade de
> fazer esse translate. Uma forma de vc fazer isso é criando uma trigger de
> logon, que altera essas variáveis de sessão em todo logon no banco de dados:
>
> CREATE OR REPLACE TRIGGER SYS.global_nls_session_stn
>AFTER LOGON ON DATABASE
> BEGIN
>EXECUTE IMMEDIATE 'alter session set NLS_COMP=LINGUISTIC';
>EXECUTE IMMEDIATE 'alter session set NLS_SORT=BINARY_AI';
> END;
>
> Essas duas variáveis de sessão é q fazem essa mágica: NLS_COMP e NLS_SORT.
> Pesquise sobre elas na net.
>
> Um detalhe: quando vc usa o SQL Developer (e outros programas do tipo), ele
> força essas variáveis de sessão depois de fazer o logon. O que acaba
> acontecendo é que a trigger é executada depois do logon, e logo em seguida o
> próprio developer altera essas variáveis para os valores que estão
> configurados nele. Pra vc alterar essas variáveis dentro do developer, vá em
> Tools > Preferences... > Database > NLS e altere Sort para BINARY_CI e
> Comparison para LINGUISTIC. Antes de criar a trigger sugerida, vc pode
> simplesmente alterar esses parâmetros no seu developer e testar a query sem
> o translate.
>
> []s
>
> Marcos
>
>
>
>
> Em 25 de julho de 2011 10:05, Ana Cássia Japiassu Diniz <
> anajapia...@gmail.com> escreveu:
>
>> **
>>
>>
>> Olá Pessoal, bom dia.
>>
>>
>> A query abaixo está muito lenta, acredito que o problema esteja no uso do
>> translate.
>>
>> O problema é o seguinte... temos um campo para o usuário digitar: rua,
>> bairro, cidade, estado e a medida q ele vai digitando, consultas vão sendo
>> realizadas,, como a consulta demora um pouco, as requisições vão se
>> atropelando (eu acho) e acaba q a aplicação perde a conexão com o banco.
>> Segue a query exemplo para vocês darem uma olhada.
>>
>> Desde já agradeço.
>>
>> Ana Cássia
>>
>> SELECT logradouro.TLO_TX,
>> logradouro.LOG_NO,
>> bairro.BAI_NO,
>> localidade.LOC_NO,
>> logradouro.UFE_SG,
>> logradouro.CEP
>> FROM LOG_LOGRADOURO logradouro,
>> LOG_BAIRRO bairro,
>> LOG_LOCALIDADE localidade
>> WHERE bairro.BAI_NU = logradouro.BAI_NU_INI
>> AND localidade.LOC_NU = logradouro.LOC_NU
>> AND (
>> lower(translate(logradouro.LOG_NO,
>> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
>> 'AaOoCcNn')) LIKE
>> translate('%pinheiros%',
>> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
>> 'AaOoCcNn')
>> OR
>> lower(translate(logradouro.TLO_TX || ' ' || logradouro.LOG_NO,
>> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
>> 'AaOoCcNn')) LIKE
>> translate('%pinheiros%',
>> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
>> 'AaOoCcNn')
>> )
>> AND bairro.BAI_NU = bairro.BAI_NU
>> AND lower(translate(bairro.BAI_NO,
>> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
>> 'AaOoCcNn')) LIKE
>> translate('%jardim%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
>> 'AaOoCcNn')
>> AND localidade.LOC_NU = logradouro.LOC_NU
>> AND lower(translate(localidade.LOC_NO,
>> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
>> 'AaOoCcNn')) LIKE translate('%são
>> paulo%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
>> 'AaOoCcNn')
>> AND logradouro.UFE_SG = 'SP';
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>  
>>
>
>


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





-

RES: [oracle_br] Otimização de query

2011-07-25 Por tôpico Milton Bastos Henriquis Junior
Bem lembrado, Marcos...

Tem um post sobre isso no Blog do Marcio Portes:
http://mportes.blogspot.com/2007/07/consulta-ignorando-acentos.html



--
Milton Bastos
http://miltonbastos.com



-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome 
de Marcos de Moura Gonçalves
Enviada em: segunda-feira, 25 de julho de 2011 10:39
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Otimização de query

Bom dia Ana,

Pelo que percebi, o seu translate está sendo feito para que a busca não seja
em cima da string literal, mas independente de acentos e letras
maiúsculas/minúsculas. A minha pergunta pra vc é: em algum momento vc
realmente precisa que alguma busca seja em cima da string literal? Se a sua
resposta for não, vc pode alterar alguns parâmetros de sessão que fazem com
que todas as buscas se comportem dessa forma, eliminando a necessidade de
fazer esse translate. Uma forma de vc fazer isso é criando uma trigger de
logon, que altera essas variáveis de sessão em todo logon no banco de dados:

CREATE OR REPLACE TRIGGER SYS.global_nls_session_stn
   AFTER LOGON ON DATABASE
BEGIN
   EXECUTE IMMEDIATE 'alter session set NLS_COMP=LINGUISTIC';
   EXECUTE IMMEDIATE 'alter session set NLS_SORT=BINARY_AI';
END;

Essas duas variáveis de sessão é q fazem essa mágica: NLS_COMP e NLS_SORT.
Pesquise sobre elas na net.

Um detalhe: quando vc usa o SQL Developer (e outros programas do tipo), ele
força essas variáveis de sessão depois de fazer o logon. O que acaba
acontecendo é que a trigger é executada depois do logon, e logo em seguida o
próprio developer altera essas variáveis para os valores que estão
configurados nele. Pra vc alterar essas variáveis dentro do developer, vá em
Tools > Preferences... > Database > NLS e altere Sort para BINARY_CI e
Comparison para LINGUISTIC. Antes de criar a trigger sugerida, vc pode
simplesmente alterar esses parâmetros no seu developer e testar a query sem
o translate.

[]s

Marcos




Em 25 de julho de 2011 10:05, Ana Cássia Japiassu Diniz <
anajapia...@gmail.com> escreveu:

> **
>
>
> Olá Pessoal, bom dia.
>
> A query abaixo está muito lenta, acredito que o problema esteja no uso do
> translate.
>
> O problema é o seguinte... temos um campo para o usuário digitar: rua,
> bairro, cidade, estado e a medida q ele vai digitando, consultas vão sendo
> realizadas,, como a consulta demora um pouco, as requisições vão se
> atropelando (eu acho) e acaba q a aplicação perde a conexão com o banco.
> Segue a query exemplo para vocês darem uma olhada.
>
> Desde já agradeço.
>
> Ana Cássia
>
> SELECT logradouro.TLO_TX,
> logradouro.LOG_NO,
> bairro.BAI_NO,
> localidade.LOC_NO,
> logradouro.UFE_SG,
> logradouro.CEP
> FROM LOG_LOGRADOURO logradouro,
> LOG_BAIRRO bairro,
> LOG_LOCALIDADE localidade
> WHERE bairro.BAI_NU = logradouro.BAI_NU_INI
> AND localidade.LOC_NU = logradouro.LOC_NU
> AND (
> lower(translate(logradouro.LOG_NO,
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')) LIKE
> translate('%pinheiros%',
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')
> OR
> lower(translate(logradouro.TLO_TX || ' ' || logradouro.LOG_NO,
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')) LIKE
> translate('%pinheiros%',
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')
> )
> AND bairro.BAI_NU = bairro.BAI_NU
> AND lower(translate(bairro.BAI_NO,
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')) LIKE
> translate('%jardim%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')
> AND localidade.LOC_NU = logradouro.LOC_NU
> AND lower(translate(localidade.LOC_NO,
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')) LIKE translate('%são
> paulo%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')
> AND logradouro.UFE_SG = 'SP';
>
> [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 

RES: [oracle_br] Otimização de query

2011-07-25 Por tôpico Milton Bastos Henriquis Junior
Bom dia Ana Cassia!

Seria muito importante sempre citar pelo menos o básico de informações sobre o 
ambiente: versão detalhada do Oracle é a primeira delas, e no seu caso 
específico também é importante dar detalhes sobre a aplicação. Qual a 
arquitetura? Web? Client-server? Java? PHP? Delphi?
Seria interessante ver a possibilidade de deixar esses dados que são 
consultados com muita freqüência (rua, bairro, cidade, etc...) na memória da 
própria aplicação ao invés de consultar tanto o banco de dados.

--
Milton Bastos
http://miltonbastos.com

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome 
de Ana Cássia Japiassu Diniz
Enviada em: segunda-feira, 25 de julho de 2011 10:05
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Otimização de query



Olá Pessoal, bom dia.

A query abaixo está muito lenta, acredito que o problema esteja no uso do
translate.

O problema é o seguinte... temos um campo para o usuário digitar: rua,
bairro, cidade, estado e a medida q ele vai digitando, consultas vão sendo
realizadas,, como a consulta demora um pouco, as requisições vão se
atropelando (eu acho) e acaba q a aplicação perde a conexão com o banco.
Segue a query exemplo para vocês darem uma olhada.

Desde já agradeço.

Ana Cássia

SELECT logradouro.TLO_TX,
logradouro.LOG_NO,
bairro.BAI_NO,
localidade.LOC_NO,
logradouro.UFE_SG,
logradouro.CEP
FROM LOG_LOGRADOURO logradouro,
LOG_BAIRRO bairro,
LOG_LOCALIDADE localidade
WHERE bairro.BAI_NU = logradouro.BAI_NU_INI
AND localidade.LOC_NU = logradouro.LOC_NU
AND (
lower(translate(logradouro.LOG_NO,
'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')) LIKE
translate('%pinheiros%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')
OR
lower(translate(logradouro.TLO_TX || ' ' || logradouro.LOG_NO,
'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')) LIKE
translate('%pinheiros%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')
)
AND bairro.BAI_NU = bairro.BAI_NU
AND lower(translate(bairro.BAI_NO,
'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')) LIKE
translate('%jardim%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')
AND localidade.LOC_NU = logradouro.LOC_NU
AND lower(translate(localidade.LOC_NO,
'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')) LIKE translate('%são
paulo%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')
AND logradouro.UFE_SG = 'SP';

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



Clique aqui<https://www.mailcontrol.com/sr/wQw0zmjPoHdJTZGyOCrrhg==> para 
reportar este e-mail como SPAM.


This message has been scanned for malware by Websense. www.websense.com


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



Re: [oracle_br] Otimização de query

2011-07-25 Por tôpico Marcos de Moura Gonçalves
Bom dia Ana,

Pelo que percebi, o seu translate está sendo feito para que a busca não seja
em cima da string literal, mas independente de acentos e letras
maiúsculas/minúsculas. A minha pergunta pra vc é: em algum momento vc
realmente precisa que alguma busca seja em cima da string literal? Se a sua
resposta for não, vc pode alterar alguns parâmetros de sessão que fazem com
que todas as buscas se comportem dessa forma, eliminando a necessidade de
fazer esse translate. Uma forma de vc fazer isso é criando uma trigger de
logon, que altera essas variáveis de sessão em todo logon no banco de dados:

CREATE OR REPLACE TRIGGER SYS.global_nls_session_stn
   AFTER LOGON ON DATABASE
BEGIN
   EXECUTE IMMEDIATE 'alter session set NLS_COMP=LINGUISTIC';
   EXECUTE IMMEDIATE 'alter session set NLS_SORT=BINARY_AI';
END;

Essas duas variáveis de sessão é q fazem essa mágica: NLS_COMP e NLS_SORT.
Pesquise sobre elas na net.

Um detalhe: quando vc usa o SQL Developer (e outros programas do tipo), ele
força essas variáveis de sessão depois de fazer o logon. O que acaba
acontecendo é que a trigger é executada depois do logon, e logo em seguida o
próprio developer altera essas variáveis para os valores que estão
configurados nele. Pra vc alterar essas variáveis dentro do developer, vá em
Tools > Preferences... > Database > NLS e altere Sort para BINARY_CI e
Comparison para LINGUISTIC. Antes de criar a trigger sugerida, vc pode
simplesmente alterar esses parâmetros no seu developer e testar a query sem
o translate.

[]s

Marcos




Em 25 de julho de 2011 10:05, Ana Cássia Japiassu Diniz <
anajapia...@gmail.com> escreveu:

> **
>
>
> Olá Pessoal, bom dia.
>
> A query abaixo está muito lenta, acredito que o problema esteja no uso do
> translate.
>
> O problema é o seguinte... temos um campo para o usuário digitar: rua,
> bairro, cidade, estado e a medida q ele vai digitando, consultas vão sendo
> realizadas,, como a consulta demora um pouco, as requisições vão se
> atropelando (eu acho) e acaba q a aplicação perde a conexão com o banco.
> Segue a query exemplo para vocês darem uma olhada.
>
> Desde já agradeço.
>
> Ana Cássia
>
> SELECT logradouro.TLO_TX,
> logradouro.LOG_NO,
> bairro.BAI_NO,
> localidade.LOC_NO,
> logradouro.UFE_SG,
> logradouro.CEP
> FROM LOG_LOGRADOURO logradouro,
> LOG_BAIRRO bairro,
> LOG_LOCALIDADE localidade
> WHERE bairro.BAI_NU = logradouro.BAI_NU_INI
> AND localidade.LOC_NU = logradouro.LOC_NU
> AND (
> lower(translate(logradouro.LOG_NO,
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')) LIKE
> translate('%pinheiros%',
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')
> OR
> lower(translate(logradouro.TLO_TX || ' ' || logradouro.LOG_NO,
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')) LIKE
> translate('%pinheiros%',
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')
> )
> AND bairro.BAI_NU = bairro.BAI_NU
> AND lower(translate(bairro.BAI_NO,
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')) LIKE
> translate('%jardim%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')
> AND localidade.LOC_NU = logradouro.LOC_NU
> AND lower(translate(localidade.LOC_NO,
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')) LIKE translate('%são
> paulo%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')
> AND logradouro.UFE_SG = 'SP';
>
> [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

<*> 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] Otimização de query

2011-07-25 Por tôpico rodrigobrar2...@gmail.com
Usa o Sql tuning advisor.


Rodrigo



Em 25 de julho de 2011 10:05, Ana Cássia Japiassu Diniz <
anajapia...@gmail.com> escreveu:

> **
>
>
> Olá Pessoal, bom dia.
>
> A query abaixo está muito lenta, acredito que o problema esteja no uso do
> translate.
>
> O problema é o seguinte... temos um campo para o usuário digitar: rua,
> bairro, cidade, estado e a medida q ele vai digitando, consultas vão sendo
> realizadas,, como a consulta demora um pouco, as requisições vão se
> atropelando (eu acho) e acaba q a aplicação perde a conexão com o banco.
> Segue a query exemplo para vocês darem uma olhada.
>
> Desde já agradeço.
>
> Ana Cássia
>
> SELECT logradouro.TLO_TX,
> logradouro.LOG_NO,
> bairro.BAI_NO,
> localidade.LOC_NO,
> logradouro.UFE_SG,
> logradouro.CEP
> FROM LOG_LOGRADOURO logradouro,
> LOG_BAIRRO bairro,
> LOG_LOCALIDADE localidade
> WHERE bairro.BAI_NU = logradouro.BAI_NU_INI
> AND localidade.LOC_NU = logradouro.LOC_NU
> AND (
> lower(translate(logradouro.LOG_NO,
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')) LIKE
> translate('%pinheiros%',
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')
> OR
> lower(translate(logradouro.TLO_TX || ' ' || logradouro.LOG_NO,
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')) LIKE
> translate('%pinheiros%',
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')
> )
> AND bairro.BAI_NU = bairro.BAI_NU
> AND lower(translate(bairro.BAI_NO,
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')) LIKE
> translate('%jardim%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')
> AND localidade.LOC_NU = logradouro.LOC_NU
> AND lower(translate(localidade.LOC_NO,
> 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')) LIKE translate('%são
> paulo%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
> 'AaOoCcNn')
> AND logradouro.UFE_SG = 'SP';
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 


   At.


[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




[oracle_br] Otimização de query

2011-07-25 Por tôpico Ana Cássia Japiassu Diniz
Olá Pessoal, bom dia.

A query abaixo está muito lenta, acredito que o problema esteja no uso do
translate.

O problema é o seguinte... temos um campo para o usuário digitar: rua,
bairro, cidade, estado e a medida q ele vai digitando, consultas vão sendo
realizadas,, como a consulta demora um pouco, as requisições vão se
atropelando (eu acho) e acaba q a aplicação perde a conexão com o banco.
Segue a query exemplo para vocês darem uma olhada.

Desde já agradeço.

Ana Cássia

SELECT logradouro.TLO_TX,
   logradouro.LOG_NO,
   bairro.BAI_NO,
   localidade.LOC_NO,
   logradouro.UFE_SG,
   logradouro.CEP
  FROM LOG_LOGRADOURO logradouro,
   LOG_BAIRRO bairro,
   LOG_LOCALIDADE localidade
 WHERE bairro.BAI_NU = logradouro.BAI_NU_INI
   AND localidade.LOC_NU = logradouro.LOC_NU
   AND (
 lower(translate(logradouro.LOG_NO,
'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')) LIKE
translate('%pinheiros%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')
 OR
 lower(translate(logradouro.TLO_TX || ' ' || logradouro.LOG_NO,
'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')) LIKE
translate('%pinheiros%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')
   )
   AND bairro.BAI_NU = bairro.BAI_NU
   AND lower(translate(bairro.BAI_NO,
'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')) LIKE
translate('%jardim%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')
   AND localidade.LOC_NU = logradouro.LOC_NU
   AND lower(translate(localidade.LOC_NO,
'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')) LIKE translate('%são
paulo%', 'ÁÃÀÄÂáãàäâÉÈËÊéèëêÍÌÎÏìîïíÓÒÔÕÖóòôõöÚÙÜÛúûüùÇçÑñ',
'AaOoCcNn')
   AND logradouro.UFE_SG = 'SP';


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



Re: [oracle_br] Otimização de consultas

2010-05-26 Por tôpico David Ricardo
Você os planos de execução de antes e depois?
E quais indices você tem nessa tabela?

Ats.

Em 25 de maio de 2010 12:33, Murilo Lima  escreveu:

> Mauro,
>
> Para a utilização do índice não devemos usar funções ou cálculos na coluna
> do índice, então sugiro o cálculo inverso:
>
> SELECT * FROM EMPREGADO
> WHERE
> SALARIO = 2000 * 12;
>
> []'s
>
> Murilo Lima
>
> Em 20 de maio de 2010 18:32, mauro guimaraes  >escreveu:
>
> >
> >
> > 1) A seguinte
> > consulta está muito lenta: SELECT * FROM EMPREGADO
> > WHERE
> > SALARIO / 12 = 2000; Existe um índice nonclustered para o
> > atributo SALÁRIO. O que pode ser
> > feito para otimizar esta consulta?
> >
> > [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
>
>
>


-- 
"O mistério da vida me causa a mais forte emoção. É o sentimento que suscita
a beleza e a verdade, cria a arte e a ciência. Se alguém não conhece essa
sensação ou não pode mais exprimir espanto ou surpresa, já é um morto-vivo e
seus olhos se cegaram.".(Albert Einstein - 1879 - 1955)"


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



Re: [oracle_br] Otimização de consultas

2010-05-25 Por tôpico Murilo Lima
Mauro,

Para a utilização do índice não devemos usar funções ou cálculos na coluna
do índice, então sugiro o cálculo inverso:

SELECT * FROM EMPREGADO
WHERE
SALARIO = 2000 * 12;

[]'s

Murilo Lima

Em 20 de maio de 2010 18:32, mauro guimaraes escreveu:

>
>
> 1) A seguinte
> consulta está muito lenta: SELECT * FROM EMPREGADO
> WHERE
> SALARIO / 12 = 2000; Existe um índice nonclustered para o
> atributo SALÁRIO. O que pode ser
> feito para otimizar esta consulta?
>
> [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

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




[oracle_br] Otimização de consultas

2010-05-25 Por tôpico mauro guimaraes
1) A seguinte
consulta está muito lenta: SELECT * FROM EMPREGADO
   WHERE
SALARIO / 12 = 2000; Existe um índice nonclustered para o
  atributo SALÁRIO. O que pode ser
feito para otimizar esta consulta?


  

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



Re: [oracle_br] Otimização de Queries

2009-05-07 Por tôpico Erick Guimaraes
É o SQL Optimizer for Oracle, muito boa mesmo.

2009/5/7 Eduardo Abrantes de Souza 

>
>
> A todos, bom dia!
>
> Alguém conhece alguma ferramenta de otimização de queries para ORACLE?
> Baixei a da QUEST (Trial) e achei excelente. Grande abraço.
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>


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



Re: [oracle_br] Otimização de Queries

2009-05-07 Por tôpico Júlio César Corrêa
Será que é esse Quest SQL Optimizer ?

2009/5/7 Fernando Martins 

>
>
> Eduardo, acho que faltou algo na sua msg anterior hehe
>
>
> --
> Fernando Martins
>
> "God grant us the serenity to accept the things we cannot change,
> courage to change the things we can,
> and wisdom to know the difference."
>
> 2009/5/7 Eduardo Abrantes de Souza 
> 
> >
>
> >
> >
> > Só se for agora..!
> >
> > From: oracle_br@yahoogrupos.com.br 
> >  40yahoogrupos.com.br>[mailto:
> > oracle_br@yahoogrupos.com.br  40yahoogrupos.com.br>] On Behalf
> > Of Fernando Martins
> > Sent: quinta-feira, 7 de maio de 2009 09:19
> > To: oracle_br@yahoogrupos.com.br  40yahoogrupos.com.br>
> > Subject: Re: [oracle_br] Otimização de Queries
> >
> >
> > Bom dia Eduardo,
> >
> > poderia abrir o nome dessa ferramenta para o grupo? Obrigado.
> >
> > --
> > Fernando Martins
> >
> > "God grant us the serenity to accept the things we cannot change,
> > courage to change the things we can,
> > and wisdom to know the difference."
> >
> > 2009/5/7 Eduardo Abrantes de Souza 
> > 
>  > Eduardo.Abrantes%40fgv.br > >
> >
> > >
> > >
> > > A todos, bom dia!
> > >
> > > Alguém conhece alguma ferramenta de otimização de queries para ORACLE?
> > > Baixei a da QUEST (Trial) e achei excelente. Grande abraço.
> > >
> > > [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]
>
>  
>



-- 
Júlio César Corrêa
IS Technologist - Oracle DBA
www.dbajccorrea.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] Otimização de Queries

2009-05-07 Por tôpico Eduardo Abrantes de Souza
É verdade.  Colei uma imagem mas ela não foi exibida.  Segue o link da 
ferramenta no site da Quest.

 

http://www.quest.com/sql-optimizer-for-oracle/

 

 

From: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] On 
Behalf Of Fernando Martins
Sent: quinta-feira, 7 de maio de 2009 09:43
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Otimização de Queries

 






Eduardo, acho que faltou algo na sua msg anterior hehe

-- 
Fernando Martins

"God grant us the serenity to accept the things we cannot change,
courage to change the things we can,
and wisdom to know the difference."

2009/5/7 Eduardo Abrantes de Souza mailto:Eduardo.Abrantes%40fgv.br> >

>
>
> Só se for agora..!
>
> From: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>  
> [mailto:
> oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>  
> ] On Behalf
> Of Fernando Martins
> Sent: quinta-feira, 7 de maio de 2009 09:19
> To: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>  
> 
> Subject: Re: [oracle_br] Otimização de Queries
>
>
> Bom dia Eduardo,
>
> poderia abrir o nome dessa ferramenta para o grupo? Obrigado.
>
> --
> Fernando Martins
>
> "God grant us the serenity to accept the things we cannot change,
> courage to change the things we can,
> and wisdom to know the difference."
>
> 2009/5/7 Eduardo Abrantes de Souza  <mailto:Eduardo.Abrantes%40fgv.br>  Eduardo.Abrantes%40fgv.br > >
>
> >
> >
> > A todos, bom dia!
> >
> > Alguém conhece alguma ferramenta de otimização de queries para ORACLE?
> > Baixei a da QUEST (Trial) e achei excelente. Grande abraço.
> >
> > [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]





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



Re: [oracle_br] Otimização de Queries

2009-05-07 Por tôpico Fernando Martins
Eduardo, acho que faltou algo na sua msg anterior hehe

-- 
Fernando Martins


"God grant us the serenity to accept the things we cannot change,
courage to change the things we can,
and wisdom to know the difference."


2009/5/7 Eduardo Abrantes de Souza 

>
>
> Só se for agora..!
>
> From: oracle_br@yahoogrupos.com.br [mailto:
> oracle_br@yahoogrupos.com.br ] On Behalf
> Of Fernando Martins
> Sent: quinta-feira, 7 de maio de 2009 09:19
> To: oracle_br@yahoogrupos.com.br 
> Subject: Re: [oracle_br] Otimização de Queries
>
>
> Bom dia Eduardo,
>
> poderia abrir o nome dessa ferramenta para o grupo? Obrigado.
>
> --
> Fernando Martins
>
> "God grant us the serenity to accept the things we cannot change,
> courage to change the things we can,
> and wisdom to know the difference."
>
> 2009/5/7 Eduardo Abrantes de Souza 
>  Eduardo.Abrantes%40fgv.br > >
>
> >
> >
> > A todos, bom dia!
> >
> > Alguém conhece alguma ferramenta de otimização de queries para ORACLE?
> > Baixei a da QUEST (Trial) e achei excelente. Grande abraço.
> >
> > [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]



RE: [oracle_br] Otimização de Queries

2009-05-07 Por tôpico Eduardo Abrantes de Souza
Só se for agora..!

 

 

 

From: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] On 
Behalf Of Fernando Martins
Sent: quinta-feira, 7 de maio de 2009 09:19
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Otimização de Queries

 






Bom dia Eduardo,

poderia abrir o nome dessa ferramenta para o grupo? Obrigado.

-- 
Fernando Martins

"God grant us the serenity to accept the things we cannot change,
courage to change the things we can,
and wisdom to know the difference."

2009/5/7 Eduardo Abrantes de Souza mailto:Eduardo.Abrantes%40fgv.br> >

>
>
> A todos, bom dia!
>
> Alguém conhece alguma ferramenta de otimização de queries para ORACLE?
> Baixei a da QUEST (Trial) e achei excelente. Grande abraço.
>
> [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]



Re: [oracle_br] Otimização de Queries

2009-05-07 Por tôpico Fernando Martins
Bom dia Eduardo,

poderia abrir o nome dessa ferramenta para o grupo? Obrigado.

-- 
Fernando Martins


"God grant us the serenity to accept the things we cannot change,
courage to change the things we can,
and wisdom to know the difference."


2009/5/7 Eduardo Abrantes de Souza 

>
>
> A todos, bom dia!
>
> Alguém conhece alguma ferramenta de otimização de queries para ORACLE?
> Baixei a da QUEST (Trial) e achei excelente. Grande abraço.
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


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



[oracle_br] Otimização de Queries

2009-05-07 Por tôpico Eduardo Abrantes de Souza
A todos, bom dia!

 

Alguém conhece alguma ferramenta de otimização de queries para ORACLE?  Baixei 
a da QUEST (Trial) e achei excelente.  Grande abraço.



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



[oracle_br] Otimização Banco da Dados.

2007-05-21 Por tôpico bleonardo.costa
Cenário : 

Servidor :

2 x Intel(R) Xeon(R) CPU E5320  - 1.86GHz (Quad-Core) 
Configurado em RAID 5 ( 6 HD´S de 146GB SAS)
8 GB memória 

Sistema Operacional : 

Red Hat Enterprise Linux ES 64 Bits release 4 (Nahant Update 4)

Versão Banco de Dados : 

Oracle 10.2.0.1.0 64Bits

Partições : 

/
/boot
/swap
/home
/sistema
/u01
/u02
/u03
/u04

Perguntas :

1 - Existe ganho de performance I/O, caso os arquivos do banco 
sejam distribuídos entre os diretório ou como estamos trabalhando com 
RAID o mesmo já se encarrega de fazer isso ?

2 - O tamanho dos datafiles tem influência nesse caso ?  Uma 
tablespace que tenha 50GB teria melhor performance com vários 
datafiles ou não ?  


Sei que distribuição dos arquivos do banco (controlfiles, redo 
log, datafiles,etc) em HD´s diferentes tem grande melhora na 
performance mas isso se aplica ao RAID ?



[oracle_br] Otimização de consulta

2006-09-19 Por tôpico Jonatas Gomes Alves
Senhores, tenho a seguinte consulta que demora 35
segundos:
SELECT ...
FROM VW_USUARIO, TB_REMESSA_USUARIO
WHERE VW_USUARIO.FL_STATUS_USUARIO IN (2,5) AND
 VW_USUARIO.CD_EMPRESA_CONVENIADA LIKE '%' AND
 TB_REMESSA_USUARIO.CD_USUARIO = VW_USUARIO.cd_usuario
AND
 ('222138' is null or (TB_REMESSA_USUARIO.NU_REMESSA =
TO_NUMBER('222138'))) AND
 VW_USUARIO.NU_USUARIO = VW_USUARIO.NU_TITULAR AND
 SUBSTR(VW_USUARIO.NU_ORDEM_USUARIO,1) BETWEEN
'000' AND '999' AND 
 VW_USUARIO.DT_CANCELAMENTO IS NULL 
ORDER BY VW_USUARIO.NU_ORDEM_USUARIO;


Ao comentar o trecho na linha 6, a "mesma" consulta
demora apenas 0.26 segundos:

FROM VW_USUARIO, TB_REMESSA_USUARIO
WHERE VW_USUARIO.FL_STATUS_USUARIO IN (2,5) AND
 VW_USUARIO.CD_EMPRESA_CONVENIADA LIKE '%' AND
 TB_REMESSA_USUARIO.CD_USUARIO = VW_USUARIO.cd_usuario
AND
 (/*'222138' is null or*/
(TB_REMESSA_USUARIO.NU_REMESSA = TO_NUMBER('222138')))
AND
 VW_USUARIO.NU_USUARIO = VW_USUARIO.NU_TITULAR AND
 SUBSTR(VW_USUARIO.NU_ORDEM_USUARIO,1) BETWEEN
'000' AND '999' AND 
 VW_USUARIO.DT_CANCELAMENTO IS NULL 
ORDER BY VW_USUARIO.NU_ORDEM_USUARIO;


A razão de ter o trecho é pq ele será preenchido por
um parâmetro apartir do Forms (a consulta é de um
relatório), onde posso indicar uma remessa ou deixar o
campo vazio.

A pergunta é: pq mesmo fornecendo o valor da remessa,
a consulta fica lenta so pq tem a comparação com IS
NULL? E como posso otimizar esse comportamento?

Obg,
Até mais.



___ 
O Yahoo! está de cara nova. Venha conferir! 
http://br.yahoo.com


--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: 
http://www.oraclebr.com.br/
__
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine  
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

 





[oracle_br] Otimização de Comandos SQL

2006-05-10 Por tôpico Aline Rios



Oi, Pessoal!
Boa tarde! 
  
Seria que alguém teria uma apostila ou material de estudo sobre otimização de comandos SQL que pudesse me enviar?
Desde já agradeço!

Sds,
  Aline.

    
-
 Yahoo! Messenger com voz - Instale agora e faça ligações de graça. 

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







--
Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.





  




  
Yahoo! Grupos, um serviço oferecido por:
  
  
PUBLICIDADE




  
  



  




  
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 Termos do Serviço do Yahoo!.











Re: [oracle_br] Otimização

2006-03-10 Por tôpico Duilio Bruniera Junior
voce poderia analizar os resultados das querys ... se eles geralmente forem
subdivididos por range de data por exemplo, voce pode particionar essa
tabela.

Em 10/03/06, Rafael Mueller <[EMAIL PROTECTED]> escreveu:
>
> Olá,
>
> possuo uma data com aproximadamente 10 milhoes de registros.
> A  tabela possui uma chave composta com 5 campos, 4 campos number e 1 date
> possui também outro campo que possui um valor.
>
> As consultas fazem restrição geralmente em 2 ou 3 colunas, a data é sempre
> uma delas,
> e as consultas sempre retornam uma grande quantidade de informação (1
> milhão
> de registro em media),
> ou seja, full table scan sempre. (Não usa o indice por causa da quantidade
> de informação, certo?)
>
> Como posso fazer para a consultar ser executada mais rapidamente?
> Quais otimizações podem ser feitas na tabela e no banco?
>
> Grato,
>
> -- Rafael
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
>
> --
> Atenção! As mensagens deste grupo são de acesso público e de inteira
> responsabilidade de seus remetentes.
> Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
>
> --__
>
> Este Grupo recebe o apoio da SQL Magazine -
> www.devmedia.com.br/sqlmagazine
> __
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>


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



--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
 
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

 




Re: [oracle_br] Otimização

2006-03-10 Por tôpico Márcio de Figueiredo Moura e Castro
Caro Rafael:

Você já pensou em particionar esta tabela?

  - Original Message - 
  From: Rafael Mueller 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Friday, March 10, 2006 10:26 AM
  Subject: [oracle_br] Otimização


  Olá,

  possuo uma data com aproximadamente 10 milhoes de registros.
  A  tabela possui uma chave composta com 5 campos, 4 campos number e 1 date
  possui também outro campo que possui um valor.

  As consultas fazem restrição geralmente em 2 ou 3 colunas, a data é sempre
  uma delas,
  e as consultas sempre retornam uma grande quantidade de informação (1 milhão
  de registro em media),
  ou seja, full table scan sempre. (Não usa o indice por causa da quantidade
  de informação, certo?)

  Como posso fazer para a consultar ser executada mais rapidamente?
  Quais otimizações podem ser feitas na tabela e no banco?

  Grato,

  -- Rafael


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



  
--
  Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
  
--__

  Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
  __



Yahoo! Grupos, um serviço oferecido por: 
  PUBLICIDADE

   


--
  Links do Yahoo! Grupos

a.. Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/
  
b.. Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
  
c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço 
do Yahoo!. 




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



--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
 
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

 




Re: [oracle_br] Otimização

2006-03-10 Por tôpico Luis Claudio Arruda Figueiredo
O Paulo tem razão mas depende de outros fatores
também.

Modo como o otimizador esta baseado.
Coleta de estatísticas. 
Versão do Banco de dados.
Seletividade da Coluna do Indice e outras "coisinhas"
mais.

No Oracle 9i mesmo que você não sete todos os indices
que compõe seu indice composto o Oracle analisa para
ver se é melhor ou não fazer uma varredura de salto.

Ex...:

a) Criação da Tabela.

Create table Utilizando_index(
campoA number(5),
campoB number(5),
campoC number(5),
data   date)
Tablespace Indx


b) Geração da Massa.

declare

begin 

  for i in 1..1 loop
  insert into
Utilizando_index(campoA,campoB,campoC,data)
  values (10,15,20,sysdate);
  end loop;

end;

c) Criação do Indice.

create index indx_Utilizando_index_01 on
Utilizando_index(Campoa,Campob,Data)
Tablespace Indx

d) Faça um Select sem rodar a estatistica.

e) Rode a estatísitca (DBMS ou Analyze)

f) Faça um select novamente mesmo que a order das
colunas sejam alteradas na clausula where isso altera
apenas a ordem como é feita a leitura dos indices
(index range scan, index fast full scan), mas alguma
coluna que seja indexada tem que ser utilizada.

Se seu banco for uma aplicação que o usuário utiliza
apenas os primeiros registros na montagem da tela,
mesmo fazendo um full scan (pela quantidade de
registros retornados) você pode utilizar algumas hints
e fazer o teste.

/*+ first_rows */ - Retorna os primeiros registros
mais rapidamente.

/*+ index (table_name index_name) */ - Força a leitura
do indice.

Mas cuidado ao utilizar os hints, veja o custo e faça
os testes ok?!

abs,

Luis Figueiredo.


--- Paulo Vilhena <[EMAIL PROTECTED]> escreveu:


-
Voce só precisa fazer com que o indice seja sempre
utilizado.
  Voce tem as seguintes alternativas:
  a) descobrir quais as possibilidaddes de pesquisa e
montar indices que atendam a cada uma. Esta é um
solução que pode gerar problemas de se voce tiver
muitos indices, nas operações de delete e insert.
   
  b) colocar na clausula WHERE do select todos os
campos que compõe o indice, mesmo que eles não sejam
necessários para a query. Como fazer isso?
   
  Exemplo:
   o índice como voce disse é composto por 4 campos
number e 1 date.
   supondo-se que os campos estão nesta seguencia:
camponumber1
camponumber2
camponumber3
camponumber4
campo date1
   
   se voce fizer o seguinte select :
 selectfrom tabela where camponumber1 = 
and campodate1 = sysdate;
   
   neste caso o índice não será usado, porque voce não
usou todos os campos do indice. para resolver o
problema voce deve fazer o select da seguinte maneira:
   
select ...from tabela where camponumber1 = and
camponumber2 > 0 and camponumber3 > 0 and camponumber4
> 0 and campodate1 = sysdate;
   
  para os campos que voce não precisaria colocar WHERE
do select, coloque uma condição de pesquisa que sempre
seja verdadeira.
   
  Se na clausula where voce não colocar todos os
campos, mas voce usar desde o primeiro sem fazer
nenhum pulo entre eles, o indice será usado.
   
   select from where camponumber1=999 and
camponumber2=111 and camponumber3=345;
   
  Para melhorar o plano de execução do select e assim
melhorrar a performance da query também é bom rodar
estatisticas, pois existem situações em que mesmo o
select estando correto, o indice não é usado devido ao
fato da estatistica estar desatualizada.
   
  Paulo Vilhena
   
  
Rafael Mueller <[EMAIL PROTECTED]> wrote:
  Olá,

possuo uma data com aproximadamente 10 milhoes de
registros.
A  tabela possui uma chave composta com 5 campos, 4
campos number e 1 date
possui também outro campo que possui um valor.

As consultas fazem restrição geralmente em 2 ou 3
colunas, a data é sempre
uma delas,
e as consultas sempre retornam uma grande quantidade
de informação (1 milhão
de registro em media),
ou seja, full table scan sempre. (Não usa o indice por
causa da quantidade
de informação, certo?)

Como posso fazer para a consultar ser executada mais
rapidamente?
Quais otimizações podem ser feitas na tabela e no
banco?

Grato,

-- Rafael


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



--
Atenção! As mensagens deste grupo são de acesso
público e de inteira responsabilidade de seus
remetentes.
Acesse:
http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/

--__

Este Grupo recebe o apoio da SQL Magazine -
www.devmedia.com.br/sqlmagazine 
__



Yahoo! Grupos, um serviço oferecido por:  
 PUBLICIDADE
var lrec_target="_blank";var lrec_URL=new Array();

lrec_URL[1]="http://br.ard.yahoo

[oracle_br] Otimização

2006-03-10 Por tôpico Rafael Mueller
Olá,

possuo uma data com aproximadamente 10 milhoes de registros.
A  tabela possui uma chave composta com 5 campos, 4 campos number e 1 date
possui também outro campo que possui um valor.

As consultas fazem restrição geralmente em 2 ou 3 colunas, a data é sempre
uma delas,
e as consultas sempre retornam uma grande quantidade de informação (1 milhão
de registro em media),
ou seja, full table scan sempre. (Não usa o indice por causa da quantidade
de informação, certo?)

Como posso fazer para a consultar ser executada mais rapidamente?
Quais otimizações podem ser feitas na tabela e no banco?

Grato,

-- Rafael


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



--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
 
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

 




[oracle_br] Otimização de PL/SQL

2005-08-31 Por tôpico Michel Galle
Ae galera, to com uma dúvida quanto a como fazer uma procedure.

Recebo como parametro um código de material inicial e um final, o que 
preciso fazer é um filtro pelo material inicial até o final. Fiz isto, 
só que acho que da forma que eu fiz tem uma perda de performance, 
gostaria de ver se alguem tem alguma sugestão do que posso fazer. Ai vai 
um exemplo do código.

create or replace procedure busca_posicao_movimentos(
p_un  CHAR,
p_cd_material_ini VARCHAR2 DEFAULT ' ',
p_cd_material_fin VARCHAR2 DEFAULT ' ',
p_data_movimento  DATE default null,
p_sequencia_dia   NUMBER default 0,
p_c644_data_saldo DATE default null) is

   cursor cr_pos_fisica is
  select mov.total_entradas, mov.total_saidas, mov.total_compras
from esmovime mov
   where mov.uni_neg = p_un
 and p_cd_matterial_ini <= mov.cd_material
 and (mov.cd_material <= p_cd_material_fin or 
p_cd_material_fin is null)

 and mov.sequencia_dia > 0
 and (   p_c644_data_saldo is null
  or mov.dt_movimento >= p_c644_data_saldo)
 and (  (  p_data_movimento is null)
  or (p_sequencia_dia <> 0
  and (   p_data_movimento > mov.dt_movimento
   or p_sequencia_dia > mov.sequencia_dia ))
  or (p_sequencia_dia = 0
  and p_data_movimento >= mov.dt_movimento));

...

a minha dúvida em relação ao código acima é que quando entro na função, 
já tenho os valores das variáveis resolvidos então queria saber se não 
tem como fazer um código mais otimizado pois por exemplo:

... and (   p_c644_data_saldo is null
 or mov.dt_movimento >= p_c644_data_saldo)...

neste código acima, quando abro o cursor, eu já sei se o parametro é 
nulo ou não, e colocando isto no código, acredito que tenha uma perda de 
performance e o oracle acaba não usando o indice por causa do 'or'.

Obrigado


-- 
kbcao / Michel Galle
MSN: [EMAIL PROTECTED]
Mail: [EMAIL PROTECTED]

"Isto não são pedras, são aerolitos!!!"




___ 
Yahoo! Acesso Grátis - Internet rápida e grátis. 
Instale o discador agora! http://br.acesso.yahoo.com/


__

Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
Falar com os Moderadores:([EMAIL PROTECTED])
Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar 
__ 
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

 




RES: [oracle_br] Otimização de memó ria RAM

2005-06-27 Por tôpico Salvio Padlipskas
Olá Reinaldo,

Nesse caso, vale a pena primeiramente analisar o seu ambiente atual,
verificando
se vc tem algum gargalo. Simplesmente aumentar o tamanho da memória pode
conduzir
a lugar algum.

Segue alguns links interessantes :

http://www.ixora.com.au/scripts/pool.htm 
http://www.ixora.com.au/scripts/cache.htm

Não se esqueça da própria memória do SO. se sobrar muito pouco espaço, vc
terá
problemas com desempenho.

[ ]'s
Salvio Padlipskas



-Mensagem original-
De: Reinaldo Silva [mailto:[EMAIL PROTECTED]
Enviada em: segunda-feira, 27 de junho de 2005 11:32
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Otimização de memória RAM


Pessoal, 
 
Gostaría de otimizar o uso de memória RAM do servidor onde está instalado o
Oracle 9i, pois percebi que o oracle está utilizando 1,5 Gbytes de RAM e
ainda possui 2,5 Gbytes de RAM livres, esta máquina possui windows 2003
server. 
 
Agradeço se alguém puder me ajudar.
 
Reinaldo. 

__
Converse com seus amigos em tempo real com o Yahoo! Messenger 
http://br.download.yahoo.com/messenger/ 

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



__

Cancelar assinatura...: [EMAIL PROTECTED]
Moderadores da lista:Dorian Anderson Soutto [EMAIL PROTECTED] 
Fernanda Damous [EMAIL PROTECTED] 
Alisson Aguiar [EMAIL PROTECTED]
__
http://br.groups.yahoo.com/group/oracle_br/ 
__

Sair da Lista...: [EMAIL PROTECTED] 
Links do Yahoo! Grupos




 




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



__

Cancelar assinatura...: [EMAIL PROTECTED]
Moderadores da lista:Dorian Anderson Soutto [EMAIL PROTECTED] 
Fernanda Damous [EMAIL PROTECTED] 
Alisson Aguiar [EMAIL PROTECTED]
__
http://br.groups.yahoo.com/group/oracle_br/ 
__

Sair da Lista...: [EMAIL PROTECTED] 
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

 




[oracle_br] Otimização de memória RAM

2005-06-27 Por tôpico Reinaldo Silva
Pessoal, 
 
Gostaría de otimizar o uso de memória RAM do servidor onde está instalado o 
Oracle 9i, pois percebi que o oracle está utilizando 1,5 Gbytes de RAM e ainda 
possui 2,5 Gbytes de RAM livres, esta máquina possui windows 2003 server. 
 
Agradeço se alguém puder me ajudar.
 
Reinaldo. 

__
Converse com seus amigos em tempo real com o Yahoo! Messenger 
http://br.download.yahoo.com/messenger/ 

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



__

Cancelar assinatura...: [EMAIL PROTECTED]
Moderadores da lista:Dorian Anderson Soutto [EMAIL PROTECTED] 
Fernanda Damous [EMAIL PROTECTED] 
Alisson Aguiar [EMAIL PROTECTED]
__
http://br.groups.yahoo.com/group/oracle_br/ 
__

Sair da Lista...: [EMAIL PROTECTED] 
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