[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