Re: regexp en pgsql

From: Álvaro Hernández Tortosa <aht(at)Nosys(dot)es>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: Gino Rojas Tillemann <gino(at)masnet(dot)cl>, Marcos Ortiz <mlortiz(at)uci(dot)cu>, Juan <smalltalker(dot)marcelo(at)gmail(dot)com>, Anthony <asotolongo(at)uci(dot)cu>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: regexp en pgsql
Date: 2011-06-29 19:01:35
Message-ID: 20110629190135.GA12026@nosys.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Wed, Jun 29, 2011 at 11:16:51AM -0400, Alvaro Herrera escribió:

>
>Si los tiempos son muy altos, siempre hay algo que optimizar para
>mejorarlos. Quizás es hardware (i.e. más cores) o quizás es cambiar la
>lógica del sistema, quizás es rediseñar todo. Yo honestamente sospecho
>que tu diseño de la BD no es muy bueno; eso de pasarle regexes a cada
>campo para generar otro me parece bastante sospechoso. (Parece algo que

Estando claro lo de los cores (una conexión es atendida por un
proceso, que sólo usará un core, y no tiene sentido paralelizarlo -y si
postgres lo soportara- si ya usas 8 conexiones, lo cual es correcto),
tiendo a inclinarme que una solución podría caminar por repensar
exactamente porqué haces lo que haces (es una pregunta, no una crítica
:)

Como Álvaro dice, es raro pasar regex a cada campo para generar
otro. ¿Por qué lo haces así? ¿Qué te aporta? ¿Lo puedes hacer en
aplicación? ¿Cuándo y de qué manera se consultan estos nuevos campos?

Lo primero es que a mí, a nivel de bbdd, no me gusta guardar
información "inferible", y esto parece información inferible. Si a
partir de los datos iniciales genero tu dato final, éste no se debe
guardar en la bbdd, o estás duplicando información, que si algún día se
actualiza de forma descoordinada (lo que tiene probabilidad 1;
esto siempre sucede) entonces no sabrás "cuál es la buena". Y es un
problema gravísimo.

Sólo por motivos de rendimiento se podría considerar
"duplicarla". Pero entonces yo aplicaría una técnica tipo vista
materializada, y sacando toda esta info "duplicada" a un schema si no
bbdd independiente para no tener info duplicada.

Y llegados a este punto, la solución pasa por entender más del
problema (las preguntas que planteaba), porque tal vez se puede ir
procesando en batch (¡incluso en otra bbdd!), o si luego accedes a esos
campos 1 a 1 a lo mejor está mucho mejor en una simple vista... no sé,
hay muchas opciones, depende de tu contexto.

Saludos,

Álvaro

--

Álvaro Hernández Tortosa

-----------
NOSYS
Networked Open SYStems

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message felix gonzales 2011-06-29 21:07:52 Re: para el moderador de la lista
Previous Message Juan 2011-06-29 17:22:29 Re: regexp en pgsql