El 01/10/09 12:13, Jaime Casanova escribió:
On Thu, Oct 1, 2009 at 10:34 AM, Manuel Alejandro Estevez Fernandez
<stvz...@gmail.com> wrote:
Saludos a todos.
Tengo la siguiente consulta:
select vd.cantidad,vd.precio_venta_unidad_venta,vd.id_esquema_impuesto
from ventas_detalle vd, ventas v, articulos a
where v.id_sucursal=sucursal and
vd.id_sucursal=v.id_sucursal and
vd.id_venta=v.id_venta and
cast(v.fecha as date) = fecha_revision and
vd.id_articulo = a.id_articulo and
a.servicio is null
un explain analyze ayudaria bastante a saber que esta pasando pero es
obvio que la consulta esta retornando un producto cartesiano, fijate
que la relacion entre ventas_detalle y ventas es: id_venta,
id_corte_caja, numero_caja, id_sucursal y tu solo estas usando dos de
esos en el JOIN
Si me di cuenta, bueno aqui la consulta corregida y el analize
select vd.cantidad,vd.precio_venta_unidad_venta,vd.id_esquema_impuesto
from ventas_detalle vd, ventas v, articulos a
where v.id_sucursal=11 and
vd.id_sucursal=v.id_sucursal and
vd.id_venta=v.id_venta and
v.numero_caja = vd.numero_caja and
v.id_corte_caja=vd.id_corte_caja and
cast(v.fecha as date) = '2009-08-13' and
vd.id_articulo = a.id_articulo and
a.id_servicio is null
"Nested Loop (cost=0.00..9.08 rows=1 width=23)"
" -> Nested Loop (cost=0.00..6.05 rows=1 width=31)"
" Join Filter: (("outer".id_venta = "inner".id_venta) AND
("inner".numero_caja = "outer".numero_caja) AND ("inner".id_corte_caja =
"outer".id_corte_caja))"
" -> Index Scan using ventas_detalle_id_sucursal_index on
ventas_detalle vd (cost=0.00..3.01 rows=1 width=51)"
" Index Cond: (id_sucursal = 11)"
" -> Index Scan using ventas_id_sucursal_index on ventas v
(cost=0.00..3.02 rows=1 width=16)"
" Index Cond: (id_sucursal = 11)"
" Filter: ((fecha)::date = '2009-08-13'::date)"
" -> Index Scan using articulos_pkey on articulos a (cost=0.00..3.01
rows=1 width=4)"
" Index Cond: ("outer".id_articulo = a.id_articulo)"
" Filter: (id_servicio IS NULL)"
Saludos.
--
Atentamente.
Manuel Alejandro Estévez Fernández
--
TIP 5: �Has le�do nuestro extenso FAQ?
http://www.postgresql.org/docs/faqs.FAQ.html