[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