Subject | Left Outer Join - Very Slow Query |
---|---|
Author | Douglas Dallacqua |
Post date | 2004-08-31T21:09:32Z |
SELECT
P.ID_PRODUTO,
P.DESCRICAO,
COALESCE(SUM(V.QTDE),0) AS TOTAL
FROM PRODUTO P LEFT OUTER JOIN VENDA V
ON P.ID_PRODUTO=V.ID_PRODUTO
AND V.DATA BETWEEN '01/01/2003' AND '06/30/2003'
GROUP BY 1,2
PLAN SORT (JOIN (P NATURAL,V INDEX (VENDA_IDX2,VENDA_IDX1)))
tables
produto(id_produto (pk),descricao)
7.500 rows
venda(data,id_produto,qtde,prcvenda) ==> venda_idx1- index on field data / venda_idx2 - index on field id_produto
280.000 rows
if i use inner join the query is vary fast.
but the same query using left join / postgreSQL run in 3s
while in Firebird 1.5.1 run in 15s
help...
Douglas Dallacqua
Assis,SP,Brazil
[Non-text portions of this message have been removed]
P.ID_PRODUTO,
P.DESCRICAO,
COALESCE(SUM(V.QTDE),0) AS TOTAL
FROM PRODUTO P LEFT OUTER JOIN VENDA V
ON P.ID_PRODUTO=V.ID_PRODUTO
AND V.DATA BETWEEN '01/01/2003' AND '06/30/2003'
GROUP BY 1,2
PLAN SORT (JOIN (P NATURAL,V INDEX (VENDA_IDX2,VENDA_IDX1)))
tables
produto(id_produto (pk),descricao)
7.500 rows
venda(data,id_produto,qtde,prcvenda) ==> venda_idx1- index on field data / venda_idx2 - index on field id_produto
280.000 rows
if i use inner join the query is vary fast.
but the same query using left join / postgreSQL run in 3s
while in Firebird 1.5.1 run in 15s
help...
Douglas Dallacqua
Assis,SP,Brazil
[Non-text portions of this message have been removed]