[firebase-br] Delete com subselect não usa índice

Daniel Sonda daniel em mhnet.com.br
Sex Set 11 10:51:36 -03 2009


Obrigado Douglas.

Tive a seguinte idéia:

E se na trigger eu usar um FOR SELECT para criar um loop com as "par_id" 
que devem ser excluídas e dentro do loop usar um delete "direto", sem 
subselect. Qual fica mais otimizado? a sua solução ou usando for select?

Daniel

Em 11/09/2009 10:35, Douglas Tosi escreveu:
> 2009/9/11 Daniel Sonda<daniel em mhnet.com.br>:
>    
>> delete from conta_receber
>> where (conta_receber.par_id in (
>>   select parcela.par_id
>>   from parcela
>>   where (parcela.vda_id = new.vda_id)))
>> Posso estruturar a instrução de maneira diferente a fim de otimizar?
>>      
> Acho que não tem como indexar as duas tabelas neste caso. Mas você
> pode tentar o seguinte comando e ver se melhora um pouco.
>
> delete from conta_receber
> where exists
> (
> select 1
> from parcela
> where parcela.vda_id = new.vda_id and parcela.par_id = conta_receber.par_id
> )
>
> hth,
>    




Mais detalhes sobre a lista de discussão lista