Ver Mensaje Individual
  #6 (permalink)  
Antiguo 03/12/2012, 13:09
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Rows multiplicados por una columna

Bueno, ahora queda más claro, aunque infortunadamente no hay muchas partes por donde resolver el problema.
La cosa tiene dos soluciones:
1) A nivel de SP: Creas un cursor que lea la tabla vieja y procesas uno a uno los registros. Con eso puedes hacer N inserciones si pones las inserciones dentro de un LOOP, que se reinicia con cada FETCH al cursor. En ese caso el LOOP dependerá del valor leído del cursor en el campo correspondiente.
2) A nivel de programación, deberás crear inserts masivos con N registros, los cuales obviamente creas en la programación de una aplicación.
El tema que tienes que tener en cuenta que no hay forma práctica de hacer lo que quieres de otra forma, porque estás hablando de 10.000.000 registros, lo que no veo práctico hacer en un query masivo y recursivo (que de todos modos MySQL no puede hacer porque no existen clausulas que lo permitan).
En el contexto que describes, implicaría un uso enorme de memoria para poder generarlo, cosa que francamente yo estimo que generará errores de transferencia y requerirá indefectiblemente tocar la configuración del servidor.
A mi entender, usar tablas de tipo TEMPORARY y crear bloques en memoria de datos a volcar masivamente, como ya te propusieron y se puede hacer en el primer ejemplo que te digo, sería la mejor opción.
Si los registros son tantos como dices, cualquier camino requerirá bastante tiempo de procesamiento.
Horas, sino al menos un par de días.

Yo he tenido que realizar una tarea bastante parecida en Oracle hace poco, con un volumen mucho menor de registros, aprovechando recursos excelentes del PL/SQL de Oracle, y usando servidores bastante poderosos, y aún así estimamos que en el mejor de los casos nos va a llevar alrededor de un día a un día y medio de procesamiento.

No creo que lo que propones lleve mucho menos de eso, en el mejor de los casos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)