Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group