[firebase-br] Dúvida com sql

Eduardo Pombo eduardo em embras.net
Qua Nov 3 11:52:25 -03 2010


bom dia,

Acredito que eh por causa do INNER qdo vc usa inner ele trabalha o
join fazendo a pesquisa de modo diferente é como se a busca fosse
feito primeiro na tabela " i ", talvez so de inverter a tabela
principal trocando a tabela "i" com a "v" ja resolva ou ate mesmo no
where mudar para ser  "i.empresa = 1" ao inves de "v.empresa=1" ja
resolva

Espero ter ajudado,




2010/10/31 news://news.gmane.org/gmane.comp.db.firebase.portuguese
<aps180180 em gmail.com>:
> Tenho a seguinte sentença sql num banco de 600 mb
>
> SELECT
>  v.DTVENDA AS DATA,
>  v.NUMDOC, v.CLIENTE, v.PRAZO, v.NotaFiscal,
>  i.PRODUTO, i.QTDE AS SAIDA, i.VALOR, i.TOTPROD, i.TIPOVENDA,i.VALORDESC
> FROM
>  EST007 v
> INNER JOIN
>  EST008 i ON i.EMPRESA = v.EMPRESA
>   AND i.ITEMVENDACONTADOR = v.VENDACONTADOR
>   AND COALESCE(i.TIPOVENDA,' ') <> 'F'
> WHERE v.Empresa = 1
>  AND v.DtVenda between '01.01.0001' and  '30.09.2010'
>  AND COALESCE(v.Cancelado,'N') <> 'S'
>  AND COALESCE(v.BAIXAR,' ') <> 'D'
>  AND COALESCE(v.MOVIMENTAESTOQUE,'S') <> 'N'
>  AND i.Produto = '00201'
>
> /******************************************************************************/
> /****                               Indices    de v ****/
> /******************************************************************************/
>
> CREATE INDEX EST007_EMP_NUMDOC ON EST007 (EMPRESA, NUMDOC);
> CREATE INDEX EST007_IDX1 ON EST007 (DTCANCELADO);
> CREATE INDEX EST007_IDX2 ON EST007 (EMPRESA, NUMOS);
> CREATE INDEX EST007_IDX3 ON EST007 (EMPRESA, DTVENDA, CANCELADO);
> CREATE INDEX EST007_IDX4 ON EST007 (EMPRESA, NUMCUPOM);
> CREATE INDEX EST007_IDX5 ON EST007 (EMPRESA, DOCORIGEMGERADO);
> CREATE INDEX EST007_IDX6 ON EST007 (EMPRESA, CLIENTE);
> CREATE INDEX EST007_IDX7 ON EST007 (EMPRESA, NUMOS, VENDACONTADOR);
> CREATE INDEX EST007_IDX8 ON EST007 (EMPRESA, MANIFESTO);
> CREATE INDEX EST007_IDX9 ON EST007 (EMPRESA, TIPODOCORIGEM, NUMDOCORIGEM);
> CREATE INDEX EST007_NUMDOC ON EST007 (NUMDOC);
> CREATE INDEX SK_DTVENDA ON EST007 (DTVENDA);
> CREATE INDEX SK_MANIFESTO ON EST007 (MANIFESTO);
>
>
> /******************************************************************************/
> /****                               Indices   de i ****/
> /******************************************************************************/
>
> CREATE INDEX EST008_IDX1 ON EST008 (EMPRESA, ITEMVENDACONTADOR, TIPOVENDA);
> CREATE INDEX EST008_IDX2 ON EST008 (EMPRESA, PRODUTO, TIPOVENDA);
> CREATE INDEX EST008_IDX3 ON EST008 (EMPRESA, PRODUTO);
> CREATE INDEX EST008_IDX4 ON EST008 (EMPRESA, ITEMVENDACONTADOR, PRODUTO);
> CREATE INDEX EST008_PRODUTO ON EST008 (PRODUTO);
>
>
>
>
>
>
> O que acontece é o seguinte:
>
> Se o produto existe na tabela i o resuldo é imediato, se nao existe demora
> uns 26 segundos.
>
> o que posso fazer para resolver?
>
> Grato.
>
> André Pereira
>
>
>
>
>
> ______________________________________________
> 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
>



-- 

Atenciosamente

José Eduardo Pombo de Barros
Gerente de Manutenção de Sistemas




Mais detalhes sobre a lista de discussão lista