Caros colegas,
estou com um problema de performance numa
query. Tentei algumas técnicas para otimiza-la mas nao obtive exito.
Mostrarei abaixo um exemplo :
TBL01
--------------
COD_PRD
DCR_PRD
TBL02
--------------
COD_PRD
COD_LOJA
PRECO_VENDA
obs: Os precos são diferenciados para as
lojas
TBL03
--------------
COD_PRD
COD_LOJA
COD_DET
QTD_ETQ
obs: CODDET = detalhe do produto (tamanho, Cor,
etc.)
QTD_ETQ= quantidade de estoque do
produto
Exemplo de Pesquisa:
SELECT
A.COD_PRD, DCR_PRD,
B.COD_LJA, COD_DET, QTD_ETQ ,
PRECO_VENDA
FROM
TBL01 A,TBL02 B,TBL03
C
WHERE
DCR_PRD LIKE
"SAPATO%" and
A.COD_PRD = B.COD_PRD
AND
B.COD_PRD=C.CODPRD
AND
B.CODLJA =
C.CODLJA
resultado da pesquisa:
Código ; Descrição ; Loja
; Detalhe ; Estoque ; Preço
-----------------------------------------------------------------------------------------------
100 ; SAPATO SANDALO COURO ; 1 ;
PRETO ; 10 ; R$ 70,00
100 ; SAPATO SANDALO COURO ; 2 ;
PRETO ; 5 ; R$ 75,00
100 ; SAPATO SANDALO COURO ; 3 ;
PRETO ; 0 ; R$ 80,00
100 ; SAPATO SANDALO COURO ; 1 ;
MARROM ; 10 ; R$ 70,00
100 ; SAPATO SANDALO COURO ; 2 ;
MARROM ; 5 ; R$ 75,00
100 ; SAPATO SANDALO COURO ; 3 ;
MARROM ; 0 ; R$
80,00
200 ; SAPATO SAMELO COURO ; 1 ;
PRETO ; 7 ; R$ 50,00
200 ; SAPATO SAMELO COURO ; 2
; PRETO ; 3 ; R$ 65,00
200 ; SAPATO SAMELO COURO ; 3
; PRETO ; 2 ; R$
70,00
200 ; SAPATO SAMELO COURO ; 1 ;
BRANCO ; 7 ; R$ 50,00
200 ; SAPATO SAMELO COURO ; 2
; BRANCO ; 3 ; R$ 65,00
200 ; SAPATO SAMELO COURO ; 3
; BRANCO ; 2 ; R$
70,00
.........
........
.......
O problema é o tempo da pesquisa (2
minutos) principalmente quando o numero de lojas cresce(20 por exemplo).
A central de distribuição precisa
visualizar, ao mesmo tempo, o estoque do
produto em todas as lojas, quando a pesquisa
é feita pelo código o tempo
é aceitável mas pela descrição é
terrivel.
obs: a estrutura apresentada no exemplo
é muito simples, deixando até a impressão que a tbl02
não é necessária, mas outros campos à justificam.
O que eu poderia fazer para melhorar o tempo de
pesquisa ?
Como eu poderia criar um índice adequado
à pesquisa com essas tabelas ?
Agradeço antecipadamente.
Reginaldo