Fórum Por que tanto tempo para abrir uma query? #43405

24/03/2004

0

A instrução SQL abaixo funciona blz. Só que demora demais para carregar, e são poucos os registros.
O que poderia ser? Uso Firebird.
Obrigado

SELECT PRODUTOS.CODIGO,
PRODUTOS.DESCRICAO as DESCRPRODUTO,
(Select sum (MOVIESTOQUE.QUANTIDADE)
from MOVIESTOQUE
Where MOVIESTOQUE.OPERACAO = ´E´
and PRODUTOS.CODIGO = MOVIESTOQUE.PRODUTO) as SubTotalEntrada,
(Select sum (MOVIESTOQUE.QUANTIDADE)
from MOVIESTOQUE
Where MOVIESTOQUE.OPERACAO = ´S´
and PRODUTOS.CODIGO = MOVIESTOQUE.PRODUTO) as SubTotalSaida
from PRODUTOS


Valdirdill

Valdirdill

Responder

Posts

24/03/2004

Afarias

sub-querys como ´campos´ de um SELECT são elementos de degradação de performance -- principalmente quando vc usa uma com um JOIN para uma tabela de movimentos q só tende a crescer a cada dia -- produtos podem ser poucos, mas movimentos...

além de q cada 1 dessas sub-querys é executada novamente para cada 1 dos registros (produtos) retornados -- somado ao q eu disse acima:: ai está a razão da lentidão!

Construa uma query mais otimizada, faça 1 join nas tabelas produtos e movimentos e não use sub-querys



T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar