From: | Arturo Munive <arturomunive(at)gmail(dot)com> |
---|---|
To: | Jaime Casanova <systemguards(at)gmail(dot)com> |
Cc: | Postgresql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: diferencia entre funciones |
Date: | 2007-06-26 13:40:50 |
Message-ID: | 46811762.20002@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Jaime Casanova escribió:
> On 6/25/07, Arturo Munive <arturomunive(at)gmail(dot)com> wrote:
>> Disculpen la "ingenuidad" de mi pregunta, pero ahi va
>>
>> ¿Hay alguna diferencia en cuanto a rendimiento o algun otro factor al
>> escribir funciones SQL contra escribir funciones en PL/pgSQL?
>> es decir hay alguna razón para preferir un tipo de funciones sobre otro?
>>
>
> leyendo http://www.postgresql.org/docs/8.2/static/xplang.html, se me
> ocurre que la respuesta seria porque los lenguajes procedurales
> necesitaran una etapa adicional de parse/analysis y determinar que
> debe ser enviado al servidor como SQL para que sea ejecutado y que se
> queda para ser ejecutado por el handler (manejador del lenguaje)
>
>> cuando debo escribir una funcion en SQL y cuando en PL/pgSQL?
>>
>
> cuando necesites hacer algo que vaya mas alla de las capacidades de SQL
>
mmm entonces las funciones los lenguajes procedurales logran cosas mas
complejas que el propio sql
osea que escribir
CREATE FUNCTION una_funcion (param varchar) RETURNS SETOF varchar AS
$body$
SELECT
t1.campo1 as c1,
t2.campo1 as c2
FROM
tabla1 as t1,
tabla2 as t2
WHERE
t2.otro_campo = p
AND t1.campo3 = t2.campo3
$body$
LANGUAGE 'sql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
es lo mismo que escribir un vista con la misma estructura
Create View vista as
SELECT
t1.campo1 as c1,
t2.campo1 as c2,
t2.otro_campo as c3
FROM
tabla1 as t1,
tabla2 as t2
WHERE
t1.campo3 = t2.campo3
y luego hacer un select * from vista where c3 = p
Digo lo mismo por que el hecho de escribir esa consulta en una función
no me otorga mas eficiencia ni otra característica diferente
Es así, o entendí mal?
From | Date | Subject | |
---|---|---|---|
Next Message | Arturo Munive | 2007-06-26 13:49:44 | Re: diferencia entre funciones |
Previous Message | Fabian Pineda | 2007-06-26 10:15:28 | Re: funcion desde el CRON |