[firebase-br] Ajuda em SQL

Gustavo Luis Hinterholz gustavoluishinterholz em gmail.com
Qua Set 10 20:32:33 -03 2014


Nas tuas ligações realmente é necessário o uso do LEFT JOIN na ligação de
todas as tabelas? Não poderia trocar pelo INNER JOIN algumas ou todas?

Att
Gustavo Luis Hinterholz
9381-8192
*http://gustavohinterholz.blogspot.com.br/
<http://gustavohinterholz.blogspot.com.br/>* <http://www.gustavo/>

2014-09-10 19:56 GMT-03:00 Samir Oliveira Costa <sysleilao em gmail.com>:

> a Analise deu isso ai em baixo.
> As tabelas de VENDEDORES e COMPRADORES que estão atrapalhando.
> Porem preciso delas e elas estao ligadas corretamente.
> Muito estranho.
>
>
>
> Plan
> ------------------------------------------------
> PLAN SORT (JOIN (JOIN (JOIN (SORT (JOIN (LO NATURAL, VEN NATURAL)), TC1
> INDEX (PK_TABCLIENTES_1)), COM NATURAL), TC2 INDEX (PK_TABCLIENTES_1)))
>
> Adapted Plan
> ------------------------------------------------
> PLAN SORT (JOIN (JOIN (JOIN (SORT (JOIN (LO NATURAL, VEN NATURAL)), TC1
> INDEX (PK_TABCLIENTES_1)), COM NATURAL), TC2 INDEX (PK_TABCLIENTES_1)))
>
> Query Time
> ------------------------------------------------
> Prepare       : 0,00 ms
> Execute       : 9.126,00 ms
> Avg fetch time: 276,55 ms
>
> Memory
> ------------------------------------------------
> Current: 10.484.220
> Max    : 11.856.024
> Buffers: 2.048
>
> Operations
> ------------------------------------------------
> Read   : 3.999
> Writes : 0
> Fetches: 11.033.899
>
>
> Enchanced Info:
>
> +--------------------------+-----------+-----------+-------------+---------+---------+---------+
> |        Table Name        |  Records  |  Indexed  | Non-Indexed | Updates
> | Deletes | Inserts |
> |                                    |   Total   |   reads   |    reads
>  |         |         |         |
>
> +--------------------------+-----------+-----------+-------------+---------+---------+---------+
> |COMPRADORES        |         0 |         0 |     2592760 |       0 |
> 0 |       0 |
> |TABCLIENTES            |         0 |       212 |           0 |       0 |
>     0 |       0 |
> |TABLOTES                   |         0 |         0 |       25169 |       0
> |       0 |       0 |
> |VENDEDORES            |         0 |         0 |     2661236 |       0 |
>     0 |       0 |
>
> +--------------------------+-----------+-----------+-------------+---------+---------+---------+
>
>
> 2014-09-10 19:39 GMT-03:00 Samir Oliveira Costa <sysleilao em gmail.com>:
>
> > Amigos, uso DELPHI7 e FIREBIRD 2.5 (ultima versão)
> >
> > Estou tendo muita lentidão em uma sql, copiei ela abaixo.
> > As ligações, são feitas em com os indices corretos.
> > O Resultado é muito pequeno menos de 300 registros.
> > A função lista não atrapalha, testei sem ela.
> > Detalhe preciso de todos os campos que estao na sql.
> >
> > O que posso estar fazendo errado?
> >
> >
> > SELECT lo.FIL_CODIGO, lo.LEI_CODIGO, lo.LOT_LOTE, lo.LOT_QTD,
> > lo.LOT_PESOMEDIO,  lo.LOT_TIPO, lo.LOT_ORDEM, lo.LOT_MEDIA, lo.LOT_TOTAL,
> > lo.LOT_LANCE,
> > lo.LOT_DEFESA, lo.LOT_DESCPROGRESSIVO, lo.LOT_CANAL, lo.LOT_ESPECIE,
> >  lo.LOT_DATAATUALIZACAO, lo.LOT_PULAPAGINA, lo.LOT_CAPTACAO,
> > lo.LOT_VENFICTICIO,
> > lo.LOT_COMFICTICIO, lo.CON_CODIGO, lo.LOT_OBS, lo.LOT_COMVENDA,
> > lo.LOT_EOUVENDA,  lo.LOT_TAXAVENDA, lo.LOT_COMCOMPRA, lo.LOT_EOUCOMPRA,
> > lo.LOT_TAXACOMPRA,
> > lo.LOT_COMDEFESA, lo.LOT_EOUDEFESA, lo.LOT_DIFERENCIADO,
> > lo.LOT_TAXADEFESA,  lo.LOT_BOLETA, lo.USU_CODIGO, lo.CODIGO,
> lo.LOT_PRAZO,
> > lo.LOT_SAIPESO,
> > lo.LOT_EMBARQUE,   LIST(DISTINCT tc1.CLI_NOME, '/') VENDEDOR,
> > list(DISTINCT tc2.CLI_NOME, '/') COMPRADOR
> >   FROM TABLOTES lo
> >   LEFT JOIN VENDEDORES ven ON (ven.LEI_CODIGO = lo.LEI_CODIGO AND
> > ven.LOT_LOTE = lo.LOT_LOTE)
> >   LEFT JOIN TABCLIENTES tc1 ON (tc1.CLI_CODIGO = ven.CLI_CODIGO)
> >   LEFT JOIN COMPRADORES com ON (com.LEI_CODIGO = lo.LEI_CODIGO AND
> > com.LOT_LOTE = lo.LOT_LOTE)
> >   LEFT JOIN TABCLIENTES tc2 ON (tc2.CLI_CODIGO = com.CLI_CODIGO)
> >   WHERE lo.LEI_CODIGO = '300814100904820'
> > GROUP BY lo.FIL_CODIGO, lo.LEI_CODIGO, lo.LOT_LOTE, lo.LOT_QTD,
> > lo.LOT_PESOMEDIO, lo.LOT_TIPO, lo.LOT_ORDEM, lo.LOT_MEDIA, lo.LOT_TOTAL,
> > lo.LOT_LANCE, lo.LOT_DEFESA, lo.LOT_DESCPROGRESSIVO, lo.LOT_CANAL,
> > lo.LOT_ESPECIE, lo.LOT_DATAATUALIZACAO, lo.LOT_PULAPAGINA,
> lo.LOT_CAPTACAO,
> > lo.LOT_VENFICTICIO, lo.LOT_COMFICTICIO, lo.CON_CODIGO, lo.LOT_OBS,
> > lo.LOT_COMVENDA, lo.LOT_EOUVENDA, lo.LOT_TAXAVENDA, lo.LOT_COMCOMPRA,
> > lo.LOT_EOUCOMPRA, lo.LOT_TAXACOMPRA, lo.LOT_COMDEFESA, lo.LOT_EOUDEFESA,
> > lo.LOT_DIFERENCIADO, lo.LOT_TAXADEFESA, lo.LOT_BOLETA, lo.USU_CODIGO,
> > lo.CODIGO, lo.LOT_PRAZO, lo.LOT_SAIPESO, lo.LOT_EMBARQUE ORDER BY
> > lo.LOT_LOTE
> >
> >
> >
> >
> > --
> > Qualquer dúvida entrar em contato.
> >
> > Samir Costa
> > Programador Pleno e Técnico em Informática
> > Graduando em Sistemas de Informação
> > (34) 3322-7995 - (34) 9148-5670
> > Uberaba - MG
> > msn: sysleilao em gmail.com
> > site: www.sysleilao.com.br
> >
>
>
>
> --
> Qualquer dúvida entrar em contato.
>
> Samir Costa
> Programador Pleno e Técnico em Informática
> Graduando em Sistemas de Informação
> (34) 3322-7995 - (34) 9148-5670
> Uberaba - MG
> msn: sysleilao em gmail.com
> site: www.sysleilao.com.br
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista