[firebase-br] Deveria mesmo usar um Natural?!

Francisco Thiago jeandeadlucky em yahoo.com.br
Ter Abr 26 12:03:08 -03 2005


Caros amigos,

Tenho a seguinte consulta abaixo, onde o relacionamento está sendo feito 
usando Constraints de Fk.

Quanto executo ela, o plano usado para a tabela de produtos é Natural (com o 
inner join) e nas demais, o FB usa o índice. Quando eu coloco o join da 
tabela de produtos para left join, ele usa o tal índice. Pq? Não deveria ser 
justamente o contrário?

Segue a consulta e o PLANo usado

select CAD_ESTOQUE.ESTO_CODIGO
     , CAD_ESTOQUE.ESTO_COD_BARRA
     , CAD_ESTOQUE.ESTO_MP
     , CAD_PRODUTOS.CPRO_DESCRICAO ||' '|| CAD_ESTOQUE.ESTO_DESCRICAO
     , CAD_ESTOQUE.ESTO_ADD1
     , CAD_ESTOQUE.ESTO_ADD2
     , CAD_ESTOQUE.ESTO_QTD
     , CAD_ESTOQUE.ESTO_QTDMIN
     , CAD_ESTOQUE.ESTO_RESERVADO
     , CAD_ESTOQUE.ESTO_ULTIMACOMPRA
     , CAD_ESTOQUE.ESTO_ULTIMAVENDA
     , CAD_ESTOQUE.ESTO_ATIVO
     , CAD_ESTOQUE.EMPR_CODIGO
     , CAD_ESTOQUE.CPRO_CODIGO
     , ESTO_PRECO_COMPRA
     , ADD1.ADD1_DESCRICAO
     , ADD2.ADD2_DESCRICAO
     , CAD_PRODUTOS.CPRO_FOTO_PATCH
     , CAD_PRODUTOS.CPRO_UNIDADE
     , CAD_PRODUTOS.CFOR_CODIGO
     , CAD_PRODUTOS.CGRP_CODIGO
from CAD_ESTOQUE
  inner join CAD_PRODUTOS on CAD_PRODUTOS.CPRO_CODIGO = 
CAD_ESTOQUE.CPRO_CODIGO
  left join ADD1 on ADD1.ADD1_CODIGO = CAD_ESTOQUE.ESTO_ADD1
  left join ADD2 on ADD2.ADD2_CODIGO = CAD_ESTOQUE.ESTO_ADD2

Plano com inner join CAD_PRODUTOS on CAD_PRODUTOS.CPRO_CODIGO = 
CAD_ESTOQUE.CPRO_CODIGO

Plan
PLAN JOIN (JOIN (JOIN (CAD_PRODUTOS NATURAL,CAD_ESTOQUE INDEX 
(IDX_FK_ESTO_CPRO)),ADD1 INDEX (IDX_PK_ADD1_CODIGO)),ADD2 INDEX 
(IDX_PK_ADD2_CODIGO))

Adapted Plan
PLAN JOIN (JOIN (JOIN (CAD_PRODUTOS NATURAL,CAD_ESTOQUE INDEX 
(IDX_FK_ESTO_CPRO)),ADD1 INDEX (IDX_PK_ADD1_CODIGO)),ADD2 INDEX 
(IDX_PK_ADD2_CODIGO))


Plano com  left join CAD_PRODUTOS on CAD_PRODUTOS.CPRO_CODIGO = 
CAD_ESTOQUE.CPRO_CODIGO

Plan
PLAN JOIN (JOIN (JOIN (CAD_ESTOQUE NATURAL,CAD_PRODUTOS INDEX 
(IDX_PK_CPRO)),ADD1 INDEX (IDX_PK_ADD1_CODIGO)),ADD2 INDEX 
(IDX_PK_ADD2_CODIGO))

Adapted Plan
PLAN JOIN (JOIN (JOIN (CAD_ESTOQUE NATURAL,CAD_PRODUTOS INDEX 
(IDX_PK_CPRO)),ADD1 INDEX (IDX_PK_ADD1_CODIGO)),ADD2 INDEX 
(IDX_PK_ADD2_CODIGO)) 








Mais detalhes sobre a lista de discussão lista