[firebase-br] PLAN natural, porque?

omar l m rosa omarrosa em terra.com.br
Qua Jan 24 15:52:41 -03 2007


teste fb 2.0 x fb 1.5 ( o fb 2.0 está pegando foreign key de "P INDEX
(FK_PEDIDOS_MERC_1), ") FK é índice??????????
===========================================

select M.PK_MERCADORIAS,
       M.CODIGO,
       P.STATUS,
       P.CODIGO_PEDIDO,
       M.DESCRICAO,
       P.QUANTIDADE,
       P.PRECO_UNITARIO,
       P.DESCONTO,
       E.LOCALIZACAO,
       U.NOME,
       P.PK_PEDIDOS,
       P.PK_PEDIDOS_MERC,
       P.PK_USUARIOS,
       P.PK_MERC_ESTOQUES,
       P.DATA,
       P.TABELA_PRECOS,
       P.QUANTIDADE * P.PRECO_UNITARIO
from MERCADORIAS M, PEDIDOS_MERC P, USUARIOS U, MERC_ESTOQUES E
where M.PK_MERCADORIAS = E.PK_MERCADORIAS and
      P.PK_MERC_ESTOQUES = E.PK_MERC_ESTOQUES and
      P.PK_USUARIOS = U.PK_USUARIOS and
      P.PK_PEDIDOS = :APK_PEDIDOS
      order by PK_PEDIDOS_MERC


=================================================
plan com fb 1.5:

Plan
PLAN JOIN (P ORDER PK_PEDIDOS_MERC,E INDEX (PK_MERC_ESTOQUES),M INDEX
(PK_MERCADORIAS),U INDEX (PK_USUARIOS))

Adapted Plan
PLAN JOIN (P ORDER PK_PEDIDOS_MERC,E INDEX (PK_MERC_ESTOQUES),M INDEX
(PK_MERCADORIAS),U INDEX (PK_USUARIOS))

===============================================
plan com fb 2.0:

Plan
PLAN SORT (JOIN (M NATURAL, E INDEX (I_MERC_ESTOQUES_1), P INDEX
(FK_PEDIDOS_MERC_1), U INDEX (PK_USUARIOS)))

Adapted Plan
PLAN SORT (JOIN (M NATURAL, E INDEX (I_MERC_ESTOQUES_1), P INDEX
(FK_PEDIDOS_MERC_1), U INDEX (PK_USUARIOS)))

================================================

----- Original Message -----
From: "Carlos H. Cantu (TeamFB)" <listas em warmboot.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, January 24, 2007 11:42 AM
Subject: Re: [firebase-br] PLAN natural, porque?


O fato de vc não estar usando a sintaxe do SQL92 pode estar
prejudicando o optimizador... substitua o WHERE por JOINs e veja se
ele altera o plano.

PS: Muitas variáveis influem da decisão do otimizador de usar um
índice ou não... geralmente ele acerta, mas nem sempre. Pode ser o seu
caso.

[]s
Cantu (Membro do TeamFB - FireBase)
http://www.warmboot.com.br
FireBase - http://www.FireBase.com.br

olmr> O select abaixo está me retornando um plano extranho, pois todas as
colunas
olmr> do where são primary keys, portanto indexadas, e logo ma tabela
mercadorias
olmr> que é a maior!!!!
olmr> (fb 2.0)
olmr> -----------

olmr> select m.pk_mercadorias,
olmr> m.codigo,
olmr> p.status,
olmr> P.CODIGO_PEDIDO,
olmr> m.descricao,
olmr> p.quantidade,
olmr> p.preco_unitario,
olmr> p.desconto,
olmr> e.localizacao,
olmr> u.nome,
olmr> p.pk_pedidos,
olmr> p.pk_pedidos_merc,
olmr> p.pk_usuarios,
olmr> p.pk_merc_estoques,
olmr> p.data,
olmr> p.TABELA_PRECOS,
olmr> p.quantidade * p.preco_unitario
olmr> from mercadorias m, pedidos_merc p, usuarios u, merc_estoques e
olmr> where m.pk_mercadorias = e.pk_mercadorias and
olmr>       p.pk_merc_estoques = e.pk_merc_estoques and
olmr>       p.pk_usuarios = u.pk_usuarios
olmr> ;
olmr> ----------------
olmr> Plan
olmr> PLAN JOIN (M NATURAL, E INDEX (I_MERC_ESTOQUES_1), P INDEX
olmr> (FK_PEDIDOS_MERC_1), U INDEX (PK_USUARIOS))

olmr> Adapted Plan
olmr> PLAN JOIN (M NATURAL, E INDEX (I_MERC_ESTOQUES_1), P INDEX
olmr> (FK_PEDIDOS_MERC_1), U INDEX (PK_USUARIOS))


olmr> ______________________________________________
olmr> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
olmr> Para editar sua configuração na lista, use o endereço
olmr> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
olmr> Para consultar mensagens antigas: http://firebase.com.br/pesquisa


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista