Fórum Por uma dessas view abre rápido e a outra demora tanto? #222440
25/03/2004
0
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´
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)