Re: Agilizar consultas sobre fechas

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Manuel Alejandro Estevez Fernandez <stvzito(at)gmail(dot)com>
Cc: Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Agilizar consultas sobre fechas
Date: 2009-10-02 14:45:23
Message-ID: 20091002144523.GC27505@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Manuel Alejandro Estevez Fernandez escribió:

> 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"

Eso retorna en 117 milisegundos, lo cual parece razonable (si bien un
poco lento, pero no parece haber nada terrible aquí). Los resultados en
la base de verdad deberían ser distintos, y es ahí donde es interesante
hacer análisis.

Tener una base de datos de prueba que no tiene más o menos la misma
cantidad de datos que la base de datos grande (o al menos una cantidad
importante de datos) no es muy buena idea, porque planes de ejecución
son muy distintos y no puedes sacar conclusiones respecto de qué tan
buenos serán los planes cuando pongas la consulta en producción.

--
Alvaro Herrera http://planet.postgresql.org/
"La principal característica humana es la tontería"
(Augusto Monterroso)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Javier Fritz Alsite 2009-10-02 15:01:05 Sequencias
Previous Message Manuel Alejandro Estevez Fernandez 2009-10-02 14:28:30 Re: Agilizar consultas sobre fechas