Re: Agilizar consultas sobre fechas

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-02 14:28:30
Message-ID: 4AC60E0E.1090003@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 01/10/09 14:46, Jaime Casanova escribió:
> 2009/10/1 Manuel Alejandro Estevez Fernandez<stvzito(at)gmail(dot)com>:
>
>> "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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2009-10-02 14:45:23 Re: Agilizar consultas sobre fechas
Previous Message Iván Caballero Cano 2009-10-02 14:11:32 "OFF TOPIC" Recomendación de una buena lista para PHP muy transitada