Marcelo:

 

Tal como indica Alvaro, debieras hacer dos funciones una para SQL y otra para 
PLPGSQL y medir el rendimiento.

 

En lo personal utilizo mucho el PLPGSQL, pero es básicamente porque hago otras 
cosas más en las funciones.

 

Saludos

 

Mario Soto Cordones

 

De: Marcelo Alejandro España Koock [mailto:mespa...@gmail.com] 
Enviado el: miércoles, 15 de octubre de 2014 14:19
Para: Alvaro Herrera
CC: Mario Soto Cordones; pgsql-es-ayuda@postgresql.org
Asunto: Re: [pgsql-es-ayuda] Funciones SQL

 

Alvaro,

 

Frecuencia: 1 / 2 veces por mes

Tiempo: 1 minuto la extracción total del set de tatos (no el de la función, 
sino la consulta real)

Impacto en la BD: No   hay impacto perceptible por los usuarios y tampoco en 
hardware

Volumen de extracción: 22.000 registros promedio

 

Saludos,

 

El 15 de octubre de 2014, 14:15, Alvaro Herrera <alvhe...@2ndquadrant.com 
<mailto:alvhe...@2ndquadrant.com> > escribió:

Marcelo Alejandro España Koock escribió:
> Más abajo la misma función con un parámetro de entrada como filtro.
>
> -- Crea la funcion
> CREATE OR REPLACE FUNCTION admmek_test_function (in filtro_empalme text,
> out contrato varchar, out empalme varchar)
> RETURNS SETOF record AS
> $body$
> DECLARE
>    _my_record RECORD;
> BEGIN
>    RETURN QUERY SELECT a.codigo_contrato::varchar,b.codigo_empalme::varchar
>                 FROM contratos a INNER JOIN empalmes b ON a.codigo_empalme
> = b.codigo_empalme
>                 WHERE a.codigo_empalme=filtro_empalme;
>    RETURN;
> END;
> $body$
> LANGUAGE 'plpgsql';
>
> -- Ejecuta una instrucción SELECT con la funcion
> SELECT * FROM admmek_test_function('0000006346')

Asegúrate de medir el rendimiento de escribir estas funciones en SQL
versus plpgsql, en caso de que vayan a ser muy frecuentes.  Cada
lenguaje tiene sus ventajas y desventajas.

--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services




-- 
Atentamente,

Marcelo España Koock
Cuenta Personal
GMAIL 

Responder a