[firebase-br] Procedure demorada - Where + Order by

Adriano dos Santos Fernandes adrianosf em uol.com.br
Ter Dez 16 10:19:50 -03 2008


Felipe Aron escreveu:
> Pessoal estou com uma problemão:
> 
> Tenho uma procedure que serve como base para um relatório.
> Porém além dos parametros que eu passo para ela eu ainda tenho de usar uma
> consição Where e Order By na select da procedure:
> 
> select rel_controleestoque.*
> from rel_controleestoque('11/24/2008', '11/27/2008', 30, 0)
> where rel_controleestoque.oi_codforn in (5238)
> order by rel_controleestoque.oi_codprod
> 
> Sem a condição where vai super rápido.... 

Estranho, isso não deveria acontecer. Mas quanto tempo seria "super 
rápido" e não-"super rápido"?

Qual a versão do FB? Quais os planos de execução com e sem o WHERE?

> há alguma opção para enviar como
> parametro um array na procedure ??
> 
Você tem duas opções:

1) Passar uma string e montar as queries da procedure com execute statement
2) Cria uma tabela temporária com colunas (id [use generator], valor), 
insira os valores na tabela com um ID só. Passe o ID para a procedure. 
Na procedure, faça um join com a tabela temporária.


Adriano




Mais detalhes sobre a lista de discussão lista