Qué pasa si la normalización de tablas ralentiza las consultas?
#1
Estoy migrando un sistema heredado y me encuentro con que la nueva base de datos tiene un rendimiento extrañamente bajo en las consultas más simples. En el sistema viejo, todo volaba incluso sin índices bien definidos, y ahora con una estructura mucho más limpia y relaciones claras, las cosas se traban. Me pregunto si el problema podría estar en cómo estoy manejando la **normalización** de las tablas, quizás por ir demasiado lejos en separar datos que antes estaban juntos. No sé si alguien más ha pasado por esta sensación de que, al hacer las cosas "correctamente" desde el punto de vista teórico, el rendimiento se resiente de una forma inesperada.
Responder
#2
Puede que la normalización esté en el punto de mira pero no descartes el plan de ejecución. En una migración a tablas más limpias a veces terminas con joins más complejos que antes si no hay índices adecuados en las claves foráneas o en las columnas usadas para filtrar las consultas simples pueden perder ritmo. Revisa el plan de consulta las estadísticas y considera índices compuestos en columnas usadas por joins y condiciones. A veces una vista o una tabla materializada para consultas críticas ayuda sin romper la normalización.
Responder
#3
Normalización suena a un mantra de profesor pero el optimizador puede fallar cuando la cardinalidad se estima mal y te mete en planes caros. Quizá el problema no es la estructura sino que el motor está desfasado o la caché no funciona como antes. No descartes configuración de RAM tamaño de buffers y el grado de paralelismo.
Responder
#4
Uf me suena a dolor de cabeza en serio. En el sistema viejo todo iba tan fluido sin pensar en joins y tablas planas y ahora que hay reglas claras parece que el rendimiento se desarma. tal vez es la emoción de hacer las cosas bien y la realidad empuja en otra dirección.
Responder
#5
Yo lo leería como una conversación entre lectores de bases. La normalización es útil para la integridad pero quizá la lectura de planes de ejecución te está faltando. A veces una consulta se beneficia de una desnormalización ligera solo en casos críticos.
Responder
#6
Si cada cosa está en su tabla a veces hay que pagar en joins. Pero sin ver el plan solo son suposiciones. ¿Qué plan de ejecución muestra cada consulta simple podrían ayudar índices o vistas materializadas para acelerar las consultas más usadas?
Responder
#7
Quizá el problema es otra cosa estadísticas desactualizadas configuración de paralelismo o problemas del cache. Y si la normalización está bien y el cuello de botella está en el motor de la base tal vez convenga mirar análisis de query plan y tiempos de acceso a disco.
Responder
#8
Puede que no haya una solución única. En algunos entornos la desnormalización controlada para consultas críticas funciona sin destruir la integridad pero eso rompe la promesa de la normalización. A veces se necesita explicar como llegó a esa decisión sin convertirlo en dogma.
Responder


[-]
Respuesta rápida
Mensaje
Escribe tu respuesta a este mensaje aquí.

Verificación de la imagen
Escribe el texto que aparece en la imagen, en el campo que está abajo. Este proceso se usa para evitar mensajes automáticos.
Verificación de la imagen
(no distingue MAYÚSC/minúsc)

Salto de foro: