[firebase-br] Otimização de tempo de pesquisa

Daniel Sonda daniel em mhnet.com.br
Qua Set 24 19:33:23 -03 2008


Olá Carlos,

Bom... talvez eu possa estar falando algo que vc já sabe... mas lá vai:
  - os campos presentes nas cláusulas where são indexados?
  - o correto nao seria partir da tabela PRODUTO_SERVICO e fazer o join 
com estoque e depois com a stored procedure?

Um banco grande assim depende da máquina servidora tb...
 

Carlos Eduardo escreveu:
> Bom Dia Pessoal!
>
> Preciso otimizar tempo de pesquisa de produtos em nosso sistema, porém
> o Select é extremamente custoso.
>
> SELECT
> PRS_CD,
> PRS_COD_BARRAS,
> PRS_NM,
> EST_PRECO_VENDA,
> R_PROMO,
> R_PRECO,
> EST_PRECO_CUSTO,
> EST_QTDE_ATUAL,
> EST_RESERVADO,
> PRS_MARCA,
> PRS_CONTEUDO,
> PRS_ASSOCIADO
> FROM SP_PRECO_VENDA((select filial_padrao from conf_conta_hist), 0,
> '', 'today', :CLIENTE,'T',0)
> LEFT OUTER JOIN PRODUTO_SERVICO ON PRS_CD = R_PRODUTO
> LEFT OUTER JOIN ESTOQUE on EST_CD_PRODUTO = R_PRODUTO and
> EST_CD_FILIAL = (select filial_padrao from conf_conta_hist)
> WHERE (PRS_TIPO='P' OR PRS_TIPO='S');
>
> A tabela PRODUTO_SERVICO possui aproximadamente 500.000 itens, para
> cada item é buscado o preço de venda dele na Stored Procedure
> SP_PRECO_VENDA,
> e as informações de estoque na tabela ESTOQUE, que, para cada filial,
> possui 1 registro para cada produto (como a empresa tem 6 filiais, são
> 3 milhões de registros)
>
> Alguém tem alguma sugestão para ficar mais rápido a busca de produtos?
>
> Obrigado!
> Carlos
>
>   

-- 
Att.
Daniel Sonda
www.h2jsolucoes.com.br





Mais detalhes sobre a lista de discussão lista