El 01/10/09 14:46, Jaime Casanova escribió:
2009/10/1 Manuel Alejandro Estevez Fernandez<[email protected]>:
"Nested Loop (cost=0.00..9.08 rows=1 width=23)"
segun el EXPLAIN esta consulta retorna un registro casi desde el
primer filtro y el planeador la considera de costo bajisimo...
esta misma consulta que pasaste, en esa fecha especifica:
- en realidad regresa solo una fila?
- demora 30 a 40 minutos como dijiste antes?
si la respuesta a la primero pregunta es NO entonces probablemente
necesites ejecutar ANALYZE a las tablas que intervienen... a todo
esto, que version de postgres estas usando?
si en realidad regresa una sola fila y se demora tanto pasa el EXPLAIN ANALYZE
La versión de postgresql del servidor es la 8.1.11.el5_1.1.x86_64.
Espero haberlo hecho bien esta vez. Corrí la consulta sobre una base de
pruebas que tengo y tiene muchos menos registros,por que en estos
momentos no tengo acceso a la otra ,el resultado del analyze fue el
siguiente:
"Nested Loop (cost=4.73..14.14 rows=1 width=17) (actual
time=88.309..115.750 rows=50 loops=1)"
" -> Hash Join (cost=4.73..11.20 rows=1 width=25) (actual
time=59.478..60.942 rows=50 loops=1)"
" Hash Cond: ((vd.id_venta = v.id_venta) AND (vd.numero_caja =
v.numero_caja) AND (vd.id_corte_caja = v.id_corte_caja))"
" -> Seq Scan on ventas_detalle vd (cost=0.00..4.94 rows=135
width=45) (actual time=57.870..58.568 rows=135 loops=1)"
" Filter: (id_sucursal = 11)"
" -> Hash (cost=4.71..4.71 rows=1 width=16) (actual
time=1.307..1.307 rows=31 loops=1)"
" -> Seq Scan on ventas v (cost=0.00..4.71 rows=1
width=16) (actual time=0.675..1.163 rows=31 loops=1)"
" Filter: ((id_sucursal = 11) AND ((fecha)::date =
'2009-08-13'::date))"
" -> Index Scan using articulos_pkey on articulos a (cost=0.00..2.93
rows=1 width=4) (actual time=1.078..1.083 rows=1 loops=50)"
" Index Cond: (a.id_articulo = vd.id_articulo)"
" Filter: (a.id_servicio IS NULL)"
"Total runtime: 117.070 ms"
--
Atentamente.
Manuel Alejandro Estévez Fernández
--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net