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

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


Olá pessoal.

Explicando a estrutura:

As vendas tem parcelas de pagamento, cada parcela gera um título a 
receber, o qual mantem referência à parcela que o gerou. Ou seja, tabela 
CONTA_RECEBER tem uma FK com PARCELAS.

Ao cancelar uma venda, tenho q excluir o financeiro, usando esta 
instrução numa trigger da tabela de vendas:

delete from conta_receber
where (conta_receber.par_id in (
   select parcela.par_id
   from parcela
   where (parcela.vda_id = new.vda_id)))

Entretanto, o plano utilizado pelo FB é:

PLAN (PARCELA INDEX (AK_PAR_ID))
PLAN (CONTA_RECEBER NATURAL)

Não usou o índice da FK na tabela de contas a receber.
Por que?
Posso estruturar a instrução de maneira diferente a fim de otimizar?

Abraço.

Daniel Sonda





Mais detalhes sobre a lista de discussão lista