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