Re: Funciones en C mejorar performance

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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