[firebase-br] Dúvida com sql

news://news.gmane.org/gmane.comp.db.firebase.portuguese aps180180 em gmail.com
Dom Out 31 19:07:08 -03 2010


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

 






Mais detalhes sobre a lista de discussão lista