[firebase-br] PLAN natural, porque?

Jeudí Prando jeudiprando em gmail.com
Qua Jan 24 16:02:09 -03 2007


é sim


omar l m rosa escreveu:
> 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
>
>
> ______________________________________________
> 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