Fórum plan join natural #325710

20/07/2006

0

Caros amigos do fórum DevMedia por favor teria como alguem dar uma dica como eliminar um plan join natural da consulta abaixo.

select bp.bp_id_baixaprod,
bp.bp_id_ccusto,
bp.bp_dtemissao,
bp.bp_status,
cc.cc_descricao,
cc.cc_responsa
from es_baixaprod bp
inner join es_ccusto cc on cc.cc_id_ccusto = bp.bp_id_ccusto

continuando o campo cc.cc_id_ccusto é um campo primary key e o campo bb.bb_id_ccusto é um foreign key referênciado a tabela es_ccusto quando executo a consulta acima utilizando o inner ou left join o plan join da consulta sempre aparece assim:

Plano
PLAN JOIN (BP NATURAL, CC INDEX (PK_ES_CCUSTO))

Plano Adaptado
PLAN JOIN (BP NATURAL, CC INDEX (PK_ES_CCUSTO))

segundo informações quando aparece um plan join natural isso significa que a consulta demora mais para retornar os registros alguem tem uma susgestão.

Obrigado


Emersonsj

Emersonsj

Responder

Posts

20/07/2006

Joaoshi

Colega você precisa colocar um WHERE para es_baixaprod

Espero ter ajudado.


Responder

Gostei + 0

21/07/2006

Emersonsj

Primeiro gostaria de agradecer pela dica, mas eu não coloquei o where porque eu quero trazer todos os registro para minha grade, eu até poço colocar o where dessa forma where (Param = 0 or bp.bp_id_baixaprod = Param) tudo bem assi eu conseguo trazer todos quando o param for igual a zero.

Gostaria de saber se esta correto quendo eu coloco um order by na consulta o plano fica assim PLAN (ES_EMPRESA ORDER PK_ES_EMPRESA)
não trazendo mais o NATURAL, se eu utilizar desse recurso em algumas consulta que não precisa colocar o where esta correto.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar