Re: problema con trigger

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: JHONATAN CANO FURAGARO <jhonatan(dot)cano(dot)f(at)gmail(dot)com>
Cc: Guillermo Villanueva <guillermovil(at)gmail(dot)com>, Virginia <mavir78(at)gmail(dot)com>, Jaime Casanova <jaime(at)2ndquadrant(dot)com>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: problema con trigger
Date: 2010-10-27 13:22:47
Message-ID: 1288185424-sup-7531@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Excerpts from JHONATAN CANO FURAGARO's message of mié oct 27 09:58:51 -0300 2010:
> Buen día Guillermo,
>
> Gracias por tu pronta respuesta, tendre en cuenta las vistas y funciones.
>
> Pero por ejemplo, tengo una capa en PostgreSQL/PostGIS, donde tengo campo1,
> campo2, campo3 y zonificacion, donde los campo (1,2,3 son compontes que
> almacenan calificaciones ambientales , físico, biótico, social en este caso)
> los valores tienen una calificación de 1 a 5 y zonificación es el resultado
> de una suma ponderada de acuerdo a los pesos de los componentes. En dado
> momento estoy realizando una actualización de esta tabla (campo1...)y que
> estos cambios se deben ver reflejados en el campo zonificación y en el mapa
> final de zonifiación (en la leyenda). En este caso debería tener o no el
> campo en la tabla?

Hola, para cumplir con las "formas normales" ningún campo calculado
debería almacenarse. Si uno los almacena es solamente como una
optimización; pero como toda optimización tiene un costo de
mantenibilidad a largo plazo, lo que debes hacer antes de instalarla es
asegurarte que realmente vale la pena almacenarlo, es decir, primero
haces un poco de "profiling" de la base de datos normalizada, y si te
encuentras con que ese cálculo es un cuello de botella entonces lo
optimizas.

Si los pesos son constantes, o están almacenados en el mismo registro,
la aritmética para calcular la zonificación sigue siendo bastante
barata. Si se tratara de regenerar un polígono o algo así, que puede
tomar una cantidad considerable de tiempo de CPU, yo lo consideraría. O
bien si se tratara de un cálculo que requiriera recorrer varios
registros para calcularse. Honestamente creo que una suma ponderada no
califica como suficientemente complejo para ameritar almacenarse.

--
Álvaro Herrera <alvherre(at)commandprompt(dot)com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guillermo Villanueva 2010-10-27 13:24:25 Re: problema con trigger
Previous Message masc68@gmail.com 2010-10-27 13:11:30 Re: Error en funcion SOLUCIONADO