Hola haber si me pueden ayudar: Tengo una relación maestro detalle entre cabeceras de ventas y detalles de ventas. Tengo un view 'reimp' que enlaza las dos tablas mediante cod_factura y cod_oficina.
Si ejecuto un select sum(adv_q*adv_up) from reimp where av_d >= '01/12/2013' hace un escaneado secuencial de la tabla detalles La ejecución puede demorarse hasta en 105 segundos ???, sin embargo si hago select sum(adv_q*adv_up) from reimp where av_d = '01/12/2013' entonces usa índices de tabla detalles y es casi inmediato si hago un between y las filas están ya cacheadas también usa índices sino no. Les pongo el explain haber si me pueden ayudar: 'Aggregate (cost=545557.78..545557.79 rows=1 width=10)' ' -> Hash Join (cost=262267.42..544984.31 rows=114695 width=10)' ' Hash Cond: ((t1.av_id = t2.av_id) AND (t1.av_ov = t2.av_ov))' ' -> Index Scan using avavd on a_v t1 (cost=0.42..5248.01 rows=114546 width=6)' ' Index Cond: (av_d >= '2013-12-01'::date)' ' -> Hash (cost=135397.40..135397.40 rows=6380840 width=16)' ' -> Seq Scan on a_dv t2 (cost=0.00..135397.40 rows=6380840 width=16)' La tabla detalles tiene índices sobre (av_id,av_ov), sobre av_id y sobre av_ov. La tabla cabeceras los mismos, además de otros campos. Saludos
