[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