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
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a