Re: Como leeer el explain analyze

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
Cc: jcasanov(at)systemguards(dot)com(dot)ec, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Como leeer el explain analyze
Date: 2008-12-31 17:27:55
Message-ID: 20081231172755.GJ3809@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Edwin Quijada escribió:

> > Si es así, puedes obtener un plan que es más similar al plan que se
> > obtiene dentro de la función (de hecho debería ser el mismo) de la
> > siguiente forma:
> >
> > prepare nombre (date) AS
> > select ...
> > where alguna_fecha>= $1
> >
> > y luego:
> >
> > explain analyze execute nombre('2008-12-01')
> >
> > (Obviamente haces lo mismo para todos los valores que son variables en
> > la funcion).
>
> El prepare es para..?

Como ya dije, la idea es obtener el plan que usa la funcion para poder
examinarlo. Si haces un explain comun y corriente obtienes un plan
distinto, que como mostraba Jaime es mucho mejor que el otro plan; tan
bueno que no parece necesitar mas ajustes.

La verdad es que yo sospecho que forma tiene el otro plan (usa un
seqscan en vez de un indexscan para encontrar las fechas limite). La
forma de escapar de ese problema es conseguir que el plan se calcule con
las variables expandidas. Prueba expandiendo la consulta como un string
y usando EXECUTE.

--
Alvaro Herrera http://www.amazon.com/gp/registry/5ZYLFMCVHXC
"El destino baraja y nosotros jugamos" (A. Schopenhauer)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Emanuel Calvo Franco 2008-12-31 18:07:57 Error Compilando los sgml en el current branch
Previous Message Edwin Quijada 2008-12-31 16:55:05 RE: Como leeer el explain analyze