Deletes de 25 minutos

Donde trabajo tenemos una base de datos de un volumen considerable (mas de dos teras).

Eso obliga a pensar mucho como se hacen las aplicaciones, lo que no siempre se hace.

Hoy me han planteado una queja "Oracle va mal, tengo una tabla con 13 filas y el delete de una me ha costado 25 minutos" (la culpa siempre se la echan a Oracle).

Nos ponemos a investigar y descubrimos que la tabla sólo tiene trece filas, pero es una tabla maestra de otras doce tablas, la mayor de ellas de 145 millones filas y la siguiente de 52 millones, el resto ni las miramos.

Como hay relaciones de dependencia antes de borrar el gestor de la base de datos tiene que recorrerse por completo cada una de esas tablas para ver si está en uso la clave de la fila a borrar.

Por eso va tan lento.

El lunes le diremos al equipo de desarrollo que tienen que pensar a lo grande. Si ese campo sólo se rellena desde la aplicación y el usuario escoge la descripción de un desplegable es imposible que se ponga un dato erroneo. Y por lo tanto es mejor quitar la integridad referencial, trabajar un poco mas en la programación y dejar respirar a la base de datos.

Los que hayáis trabajado en entornos con muchos datos (bancos, cajas, compañías de seguros, utilities, etc. sabréis de que estoy hablando. En esos entornos se prohiben triggers, mas de dos indices por tabla y las integridades referenciales, entre otras cosas.

Comentarios

Entradas populares de este blog

ITIL Foundation, examen

Ocaso accidentes de la mujer

Administración pública y excedencias