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