Desde luego el problema de una bd mal diseñada tiene mala solucion, al menos nada facil, yo creo que deberias rediseñar la bd entera y despues exportar los datos a la nueva bd...
Es necesario almacenar tantos datos? Son accedidos tan regularmente como para mantenerlos en tablas?
no se que recomendarte.
montatelo para crear una jerarquia de tablas que engloben la tablota que tienes ahora.
Por ejemplo... sabes como funcionan los transaccionales en oracle?
podrias hacer algo parecido pero diferente.
te explico
En oracle puedes tener mas de un transaccional que puede estar agrupado en varios para sugurar la consistencia en caso de caida o accidente. Hay un procesode fondo que va grabando datos en los discos del grupo transaccional, cuando un grupo se llena pasa al siguiente grupo y otro proceso va salvando la informacion de todas las transacciones confirmadas. bien
Lo que te propongoes lo siguiente:
Te gustaria tener en vez de una Super-tabla del averno(como tienes ahora) un monton de tablas de un tamaño determinado, el que tu quieras, seguro que es mas apetecible...
para hacer esto vas a tener que tirar de procedimientos almacenados y disparadores(en sql desencadenadores)
si tu tablota tiene como pk un autonumerico mas facil pues no tienes que crearlo.
creaate un procedimiento almacenado que inserte registros en una tabla (cuyo nombre tomara de otra tabla donde almacenaras los diferentes nombres de tablas que van a tener la tablas nuevas) hasta un numero determinado, en el momento que pase de dicho numero tomara el nombre de la siguiente tabla que debera estar creada de antemano.
en la tabla de nombres seria conveniente tener el rango de registros que almacena (los valores del autonumerico), esta tabla funcionara como un indice de tablas, me entiendes?
vamos que basicamente creas una bd para manejar una super-tabla.
La verdad es que es un poco peliagudo pues para hacer las consultas deberia haber otro procedimiento almacenado que maneje el rango del registro (con el autonumerico) y en base a esto obtener el nombre de la tabla donde se encuentra el registro que quieres.
Al final lo que conseguimos es reducir el tamaño de los indices, en lugar de tener un megaindice tenemos muchos mas pero mas reducidos.
lo malo es que si tu bd era grande...ahora lo sera todavia mas!!!
pero realizara trabajos mas ligeros en lugar de uno solo muuuy pesado.
tienes que mirar los pros y los contras, si te merece la pena o no.
es un trabajo de chinos!!!!!!!!
cero que a estas alturas ya te habra desanimado mi "idea" admito que es un poco descabellada pero como lo solucionarias tu?
si ya lo has arreglado me encantaria saber que fue lo que hicistes
espero tu respuesta
agur