From: | "Mario Soto Cordones" <marioa(dot)soto(dot)cordones(at)gmail(dot)com> |
---|---|
To: | 'Marcelo Alejandro España Koock' <mespanak(at)gmail(dot)com>, "'Alvaro Herrera'" <alvherre(at)2ndquadrant(dot)com> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Funciones SQL |
Date: | 2014-10-15 17:49:28 |
Message-ID: | !&!AAAAAAAAAAAYAAAAAAAAAPma+WVXT5NGnV/8+cC15lfCgAAAEAAAAF3+PRTnIehJpXLcUNwkcOEBAAAAAA==@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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:mespanak(at)gmail(dot)com]
Enviado el: miércoles, 15 de octubre de 2014 14:19
Para: Alvaro Herrera
CC: Mario Soto Cordones; pgsql-es-ayuda(at)postgresql(dot)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 <alvherre(at)2ndquadrant(dot)com <mailto:alvherre(at)2ndquadrant(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Romero, Fernando | 2014-10-15 17:58:35 | RE: Consulta sobre tablespace |
Previous Message | Romero, Fernando | 2014-10-15 17:46:20 | RE: Consulta sobre tablespace |