RE: Funciones SQL

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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