From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Jaime Casanova <jaime(at)2ndquadrant(dot)com> |
Cc: | "jvenegasperu (dot)" <jvenegasperu(at)gmail(dot)com>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Funciones en C mejorar performance |
Date: | 2013-05-16 20:32:12 |
Message-ID: | 20130516203212.GK15045@eldon.alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Jaime Casanova escribió:
> 2013/5/16 jvenegasperu . <jvenegasperu(at)gmail(dot)com>:
> > y esta otra función
> >
> > CREATE OR REPLACE FUNCTION geographyforgoogle()
> > RETURNS trigger AS
> > $BODY$
> > DECLARE
> > BEGIN
> > -- NEW.long_xy := round(cast(st_length(NEW.the_geom) as numeric),2);
> > NEW.geography := transform(NEW.the_geom_origen,4326);
> > NEW.latitud:= substring(st_astext(NEW.geography) from position('-8' in
> > st_astext(NEW.geography)) for
> > char_length(st_astext(NEW.geography))-position('-8' in
> > st_astext(NEW.geography)));
> > NEW.longitud:= substring(st_astext(NEW.geography) from 7 for position('-'
> > in substring(st_astext(NEW.geography) from 8 for
> > char_length(st_astext(NEW.geography))))-1);
> supongo que dire lo mismo, si estas en 9.1 o superior esto solo
> necesita ser ejecutado si insertas o actualizas
> ahora, personalmente veo cuestionable que tengas tantos "datos
> calculados" (datos que obviamente dependen de otra columna, violan una
> de las formas normales. aunque no recuerdo cual).
El problema que le veo a esto no es tanto que viole formas normales (lo
cual puede ser aceptable porque quizás encontrar latitud y longitud a
partir de un dato puede ser caro), sino que el método que está usando
seguramente no es de lo mejor. Primero convierte la geometría a texto,
luego recorre el texto completo para saber el largo total, luego lo
recorre otra vez para contar caracteres. Yo creo que debe ser más
inteligente usar ST_AsLatLonText o algo.
http://www.postgis.org/docs/ST_AsLatLonText.html
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2013-05-16 22:46:57 | Re: Funciones en C mejorar performance |
Previous Message | Jaime Casanova | 2013-05-16 19:29:46 | Re: Funciones en C mejorar performance |