From: | Manuel Alejandro Estevez Fernandez <stvzito(at)gmail(dot)com> |
---|---|
To: | Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Agilizar consultas sobre fechas |
Date: | 2009-10-01 17:29:05 |
Message-ID: | 4AC4E6E1.7070400@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El 01/10/09 12:13, Jaime Casanova escribió:
> On Thu, Oct 1, 2009 at 10:34 AM, Manuel Alejandro Estevez Fernandez
> <stvzito(at)gmail(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2009-10-01 18:24:12 | Re: Agilizar consultas sobre fechas |
Previous Message | Jaime Casanova | 2009-10-01 17:13:32 | Re: Agilizar consultas sobre fechas |