[firebase-br] Plan Forçar a usar os indices da FK

Paulo Geloramo paulogeloramo em terra.com.br
Seg Fev 14 21:44:46 -03 2005


Usando Firebird 1.5.2

Tenho as tabelas CLIENTE, PRODUTO  e MOVIMENTO.
Estou usando SQL abaixo para retornar o total, mas esta lento,
alguma sugestão para melhorar o desempenho?

SELECT SUM(M.QUANTIDADE) AS TOTAL
FROM MOVIMENTO M
JOIN CLIENTE C ON (M.ID_CLIENTE = C.ID_CLIENTE)
JOIN PRODUTO P ON (M.ID_PRODUTO = P.ID_PRODUTO)
WHERE C.SITUACAO = 'A' AND P.TIPO = 'A'


Adotou automaticamente o plan abaixo, mas esta lento
PLAN JOIN (C NATURAL, M INDEX (FK_CLIENTE), P INDEX (PK_PRODUTO))

Alguma sugestão para forçar um outro plan que venha a usar os
indices ja criado para as PK e FK?

Tentei indicar o plan abaixo, mas não aceita usar indice FK_PRODUTO 
retornando
a mensagem de erro abaixo:

PLAN JOIN (M INDEX (FK_CLIENTE, FK_PRODUTO), C INDEX (PK_CLIENTE), P INDEX 
(PK_PRODUTO))
index  cannot be used in the specified plan
.
index FK_PRODUTO cannot be used in the specified plan.



Existe alguma forma de forçar o plan a usar dois indices conforme abaixo:
M INDEX (FK_CLIENTE, FK_PRODUTO)
Seria assim ou existe alguma outra forma?

[]s
Paulo Geloramo





Mais detalhes sobre a lista de discussão lista