Array
(
)

Desempenho stored procedure

Alexandresbo2
   - 17 set 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 ?

Título Editado(Saviski) - ´Pra que conhece muito de Firebird´


_chiappone_
   - 17 set 2004

Sobe


Alexandresbo2
   - 20 set 2004

sobe


_marcos_
   - 20 set 2004

sobe


Paulo_amorim
   - 20 set 2004

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