Re: Funcion SQL mas lenta que un SQL

From: "Raul Lapitzondo" <raul(dot)lapitzondo(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Cc: "Omar Zeballos" <ozeballos(at)kantutani(dot)com>
Subject: Re: Funcion SQL mas lenta que un SQL
Date: 2008-03-11 11:00:03
Message-ID: bfe4f2370803110400g437bea4dqbd950408342e1810@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

En principio no estas comparando lo mismo, tu primer consulta la que
no tiene funci'on no utiliza "where". Cuanto tarda la función si no
recibiera parámetros ejecutando esa unión ?.

Después con respecto al Where, habria que ver si los campos que se
condicionan, tienen indices, etc...

Saludos

El 10/03/08, Omar Zeballos <ozeballos(at)kantutani(dot)com> escribió:
>
>
> Lista,
> se me presento el problema desde la version 8.1.4, ahora estoy haciendo
> pruebas con la 8.2.6, y el problema persiste. Lo que suscede es que al
> realizar consultas del tipo
>
> select a,b,c from tabla1
> union all
> select a,b,c from tabla2
> union all
> select a,b,c from tabla3 --> TODO TARDA 4seg
>
> el tiempo de respuesta esta dentro el promedio aprox 4 segundos sobre un
> millon de registros. Sin embargo cuando coloco la misma sentencia en una
> funcion SQL es decir creo un objeto SQL de base con paramentros me tarda
> 70seg. es decir algo paso!!!. Haciendo pruebas pusimos esta funcion dentro
> de una segunda funcion y me tarda 140 seg. aprox, eso quiere decir que va
> aumentando.
> Creo una funcion SQL porque le paso 2 parametros para el where de cada
> union. Aca les mando el formato de la creacion de la funcion no la pongo
> toda porq es compleja pero les recuerdo que solo tarda 4 seg cuando corre
> sola.
>
>
>
> CREATE OR REPLACE FUNCTION sql_regenerastock(p_fecha date, p_codprod
> numeric)
> RETURNS SETOF regenerastock AS $BODY$
>
>
> select a,b,c from tabla1 where ...
> union all
> select a,b,c from tabla2 where ...
> union all
> select a,b,c from tabla3 where ...
> LANGUAGE 'sql' VOLATILE;
>
> select * from sql_regenerastock(p_fechaini,p_codprod) -->
> ESTA ES LA QUE TARDA EL DOBLE.
>
> Sera que debo parametrizar alguna variable de la base que usa funciones SQL
> en forma diferente? o cual puede ser la explicacion.
> Saludos,
> ________________________________________________________________
> Ing. Omar Zeballos Cspedes
> Grupo Empresarial Kantutani
>
>

--
Saludos
Raúl H. Lapitzondo

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2008-03-11 11:52:52 Re: Duda sobre ejecucion de consulta
Previous Message Sergio Torres 2008-03-11 03:14:40 Duda sobre ejecucion de consulta