Lists: | pgsql-es-ayuda |
---|
From: | Carlos Alberto Piña Uribe <pibe(at)df(dot)kebir(dot)com(dot)mx> |
---|---|
To: | "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Cache de funciones |
Date: | 2005-04-02 00:06:08 |
Message-ID: | bda11ba8467e7c4e9c719d0c888bdaca@df.kebir.com.mx |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Hola Lista.
Necesito saber acerca de algo asi como el cache de funciones. Estoy
desarrollando una aplicación que llama a una función que realiza cierta
operación pero hay procesos donde se manda llamar la misma función con
los mismos parametros. Creo haber leido por ahi algo así como un cache
de funciones. Quiero saber si estoy en lo cierto y si estoy en lo
cierto pues para ponerme a buscar mas a fondo. Gracias.
Atentamente
Ing. Carlos Alberto Piña Uribe
Consultoría y Desarrollo
KEBIR Infraestructura Tecnológica
alberto(dot)pina(at)kebir(dot)com(dot)mx
Cel. 044-55-59-64-85-07
Tel. 55-30-22-37
Fax 55-38-88-49
From: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> |
---|---|
To: | Carlos Alberto Piña Uribe <pibe(at)cadiz-kebir(dot)no-ip(dot)com> |
Cc: | "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Cache de funciones |
Date: | 2005-04-02 01:52:33 |
Message-ID: | 20050402015233.GA21000@dcc.uchile.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
On Fri, Apr 01, 2005 at 06:06:08PM -0600, Carlos Alberto Piña Uribe wrote:
Hola,
> Necesito saber acerca de algo asi como el cache de funciones. Estoy
> desarrollando una aplicación que llama a una función que realiza cierta
> operación pero hay procesos donde se manda llamar la misma función con
> los mismos parametros. Creo haber leido por ahi algo así como un cache
> de funciones.
No hay ningun cache de funciones. Si quieres guardar valores en memoria
quizas te sirva pgmemcache (http://pgfoundry.org/projects/pgmemcache)
(depende de memcached, http://www.danga.com/memcached/)
--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"Llegará una época en la que una investigación diligente y prolongada sacará
a la luz cosas que hoy están ocultas" (Séneca, siglo I)
From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | Carlos Alberto Piña Uribe <pibe(at)cadiz-kebir(dot)no-ip(dot)com> |
Cc: | "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Cache de funciones |
Date: | 2005-04-02 18:58:47 |
Message-ID: | c2d9e70e05040210584387f1d4@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
On Apr 1, 2005 7:06 PM, Carlos Alberto Piña Uribe
<pibe(at)cadiz-kebir(dot)no-ip(dot)com> wrote:
>
> Hola Lista.
> Necesito saber acerca de algo asi como el cache de funciones. Estoy
> desarrollando una aplicación que llama a una función que realiza cierta
> operación pero hay procesos donde se manda llamar la misma función con los
> mismos parametros. Creo haber leido por ahi algo así como un cache de
> funciones. Quiero saber si estoy en lo cierto y si estoy en lo cierto pues
> para ponerme a buscar mas a fondo. Gracias.
>
>
Al llamar a la misma funcion con los mismos parametros puedes estar
absolutamente seguro que *siempre* regresara los mismo valores? en ese
caso declarala IMMUTABLE
Lo que hace es que si la declaras IMMUTABLE reemplaza sucesivas
llamadas a la funcion con el resultado de la primera llamada.
Al llamar a la misma funcion con los mismos parametros puedes estar
absolutamente seguro que dentro de la misma transaccion *siempre*
regresara los mismo valores? en ese caso declarala STABLE
STABLE reemplaza sucesivas llamadas a la funcion dentro de la misma
transaccion con el resultado de la primera llamada en esa transaccion.
Limitacion: no puedes modificar la base desde una funcion IMMUTABLE o SATBLE.
Si no estas seguro que puedas declararla IMMUTABLE o STABLE, mejor
declarala VOLATILE.
Caso contrario la declararas VOLATILE y entonces salado, no intenta
optimizar de ninguna manera.
atentamente,
Jaime Casanova
From: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> |
---|---|
To: | Jaime Casanova <systemguards(at)gmail(dot)com> |
Cc: | Carlos Alberto Piña Uribe <pibe(at)cadiz-kebir(dot)no-ip(dot)com>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Cache de funciones |
Date: | 2005-04-04 16:11:27 |
Message-ID: | 20050404161127.GA27353@dcc.uchile.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
On Sat, Apr 02, 2005 at 01:58:47PM -0500, Jaime Casanova wrote:
> On Apr 1, 2005 7:06 PM, Carlos Alberto Piña Uribe
> <pibe(at)cadiz-kebir(dot)no-ip(dot)com> wrote:
Hola,
Un par de precisiones,
> Al llamar a la misma funcion con los mismos parametros puedes estar
> absolutamente seguro que *siempre* regresara los mismo valores? en ese
> caso declarala IMMUTABLE
>
> Lo que hace es que si la declaras IMMUTABLE reemplaza sucesivas
> llamadas a la funcion con el resultado de la primera llamada.
No necesariamente reemplaza. _Puede_ reemplazar (es decir: el
optimizador tiene derecho a reescribir la consulta de manera que en
lugar de invocarse la funcion dos o mas veces, se invoque una sola vez.
El optimizador no esta "obligado" a hacer una tal transformacion).
> Al llamar a la misma funcion con los mismos parametros puedes estar
> absolutamente seguro que dentro de la misma transaccion *siempre*
> regresara los mismo valores? en ese caso declarala STABLE
>
> STABLE reemplaza sucesivas llamadas a la funcion dentro de la misma
> transaccion con el resultado de la primera llamada en esa transaccion.
No dentro de la misma transaccion. Es solo "dentro de un mismo
snapshot", o equivalentemente, dentro de un scan. O lo que es lo mismo,
dentro de una transaccion que tiene ISOLATION LEVEL SERIALIZABLE.
--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"Cuando mañana llegue pelearemos segun lo que mañana exija" (Mowgli)