Pessoal, como obter uma performance melhor nos casos onde você tem a
seguiten situacao

where campo = nvl ( variavel, campo)

ou seja, vc pode enviar um valor na variavel, dai vc vai querer comparar o
campo sempre a esse valor, ja se vc naum passar nada, ou seja, variavel nula
ele usa o valor do campo mesmo para fazer a comparacao, desta forma sempre
true.....

sei de uma maneira para deixar o caso acima melhor ...
...
where campo = variavel
unionl
...
where variavel = null

mas queria outra alternativa.... sem ter que reescrever a querie... e algo
mais performatico também (se é que existe)

vi algo interessante no site :
http://oracle-docs.dartmouth.edu/dba-docs/articles/cbo.htm

fala de
"


SELECT account_name, trans_date, amount_FROM
 transaction_WHERE account_name = NVL(:acc_name, account_name);

 Rather, you should follow this example:


SELECT account_name, trans_date, amount
_FROM  transaction_
WHERE account_name LIKE NVL(:acc_name, '%');
"

substituir usando o like... mas eu estou usando valores numericos... e
pelo que parece a dica acima
nao deu certo, alguem tem uma solucao melhor e que funcione ?

Valeu.


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