Desempenho stored procedure

17/09/2004

Tenho um select de 200 linhas +- em uma stored procedure ....
Tenho 4 union nesta consulta onde cada union tem o seguinte
no critério:
And (Nf_Cliente = :Cliente Or :Cliente Is Null )
And (Nf_Numero = :Notafiscal Or :Notafiscal Is Null )
And (Nf_Serie = :Serie Or :Serie Is Null )
And (Nf_Representante = :Vendedor Or :Vendedor Is Null )
And (Int_Produto =:Produto Or :Produto Is Null )
And (Rom_Romaneio=:Pedido Or :Pedido Is Null )

Bom estou testando o desempenho desta procedure ....quando passo todos os parametros como null demora uns 10 segundos pra executar agora se eu comentar este bloco naum demora nada .....Gostaria de saber pq :Par is null deixa lento ? E se eu usar execute statement no lugar disso é melhor ?

[b:307270479a][color=green:307270479a]Título Editado(Saviski) [/color:307270479a]- ´Pra que conhece muito de Firebird´[/b:307270479a]


Alexandresbo2

Respostas

17/09/2004

_chiappone_

Sobe


Responder Citar

20/09/2004

Alexandresbo2

sobe


Responder Citar

20/09/2004

_marcos_

sobe


Responder Citar

20/09/2004

Paulo_amorim

Olá

Não sei bem se eh isso, mas cláusulas OR em uma query fazem com que o desempenho caia, e muito...
Considerando que a query tem 4 union, cada qual com 6 OR, pode ser isos...

Tente trocar por um teste equivalente (ou uma sequencia de portas logicas equivalentes ou mude o tipo deteste ) e veja o desempenho.

Espero que ajude
Até+


Responder Citar