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