Por uma dessas view abre rápido e a outra demora tanto?

Delphi

25/03/2004

Minha necessidade: preciso criar uma view, como na opção 2 abaixo. Ela funciona só que demora uma eternidade para abrir a query cuja instrução SQL é ´SELECT PRODUTO, SUM(ENTRADAS), SUM(SAIDAS) FROM VIEWMOVIESTOQUE2 GROUP BY PRODUTO´. Mas, se eu fizer a mesma instrução, usando a opção/view 1 ´´SELECT PRODUTO, SUM(ENTRADAS), SUM(SAIDAS) FROM VIEWMOVIESTOQUE GROUP BY PRODUTO´ não demora nada.
O que poderia ser que demora tanto? Como poderia fazer para carregar a descrição do produto sem que demore tanto?
Uso BD Firebird
Obrigado.

CRIAÇÃO DE VIEW - OPÇÃO 1

CREATE VIEW VIEWMOVIESTOQUE(PRODUTO, DATA, OPERACAO, ENTRADAS, SAIDAS) AS
SELECT PRODUTO, DATA, OPERACAO,
CAST (0 AS NUMERIC (18,3))AS ENTRADAS,
CAST(QUANTIDADE AS NUMERIC(18,3)) AS SAIDAS
FROM MOVIESTOQUE WHERE OPERACAO = ´E´
UNION ALL
SELECT PRODUTO, DATA, OPERACAO,
CAST(QUANTIDADE AS NUMERIC (18,3))AS SAIDAS,
CAST(0 AS NUMERIC(18,3)) AS ENTRADAS
FROM MOVIESTOQUE WHERE OPERACAO = ´S´


CRIAÇÃO DE VIEW - OPÇÃO 2

CREATE VIEW VIEWMOVIESTOQUE2 (DESCRICAO, PRODUTO, DATA, OPERACAO, ENTRADAS, SAIDAS) AS
SELECT PROD.DESCRICAO, MOV.PRODUTO, MOV.DATA, MOV.OPERACAO,
CAST (0 AS NUMERIC (18,3))AS ENTRADAS,
CAST(QUANTIDADE AS NUMERIC(18,3)) AS SAIDAS
FROM MOVIESTOQUE MOV, PRODUTOS PROD WHERE OPERACAO = ´E´
UNION ALL
SELECT PROD.DESCRICAO, MOV.PRODUTO, MOV.DATA, MOV.OPERACAO,
CAST(QUANTIDADE AS NUMERIC (18,3))AS SAIDAS,
CAST(0 AS NUMERIC(18,3)) AS ENTRADAS
FROM MOVIESTOQUE MOV, PRODUTOS PROD WHERE MOV.OPERACAO = ´S´


Valdirdill

Valdirdill

Curtidas 0
POSTAR