FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Insertar 8 millones de registros en interbase...
Necesito insertar un poco más de 8 millones de registros en Interbase desde delphi, pero solo inserta 300,000 y genera un error de sobrecarga, ¿cómo puedo insertarlos?
|
#2
|
||||
|
||||
Has probado a hacerlo en tramos, por ejemplo cada 100.000 parar, cerrar la tabla, terminar todas las transaciones y luego recomenzar.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
|||
|
|||
cada 100,000 termino la conexion y genero una nueva para liberar espacio, pero sigue haciendo lo mismo.
|
#4
|
|||
|
|||
cada 100,000 termino la conexion y genero una nueva para liberar espacio, pero sigue haciendo lo mismo.
|
#5
|
||||
|
||||
que clase de datos está tratando de guardar?
es para saber cuanto debe pesar la info... Sergio
__________________
En Colombia hay muchos, pero muchos colombianos muy buenos. Los violentos son pocos y los vamos a controlar... |
#6
|
|||
|
|||
Son tipo texto, se esta convirtiendo un archivo de texto sin formato a una Base de Datos, el archivo actual pesa alrededor de 500 Mb.
|
#7
|
||||
|
||||
pues, por qué no explicas qué es lo que haces, qué componentes usas, cómo haces esas insersiones, qué tipos de campos, qué tipos de datos, exactamente qué clase de archivo estás metiendo en la base de datos, por qué serán 8 millones de registros, muéstranos el código de lo que haces, danos un "poco" más de información...
En caso contrario es un poquito dificil llegar a ninguna conclusión. |
#8
|
|||
|
|||
hasces las inserciones usando tables ?, tal vez ahi este el problema.
te aconsejo que uses tibquerys , haciendo un starttransaction y un endtransaction cada vez. Ibtransaction1.startransaction; try Tibquery1.execsql; Finally Ibtransaction1.CommitRetaining; End; |
#9
|
||||
|
||||
Pon la excepcion que se produce.
No hay problema para insertar millones de registros en Interbase, solo que no pudes hacer una transacion que lleve los 8millones de inserts, la tactica es hacer un contador de inserciones y hacer un commit cada 1000 inserciones start transaction insertar 1000 commit (ojo no commitretaining) y esto lo haces hasta que acabes de recorrer el archivo que quieres insertar. Saludos
__________________
Ven a Murcia y no solo pasaras calor. |
#10
|
||||
|
||||
Scordoba tiene toda la razón. Es necesario que como lo hagas le permitas hacer COMMIT cada 1000 registros.
__________________
En Colombia hay muchos, pero muchos colombianos muy buenos. Los violentos son pocos y los vamos a controlar... |
#11
|
|||
|
|||
a parte de utilizar querys, y guardar (commit) cada 1000-10000 registros, también seria aconsejable, cada vez que hagas el commit, cerrar la consulta y abrir una nueva de tal manera que no contenga ningún registro, para no volver a tener todos los datos.
|
#12
|
||||
|
||||
No se
Y por que no usan un script de 100.000 o mas o menos que de esta menera se ejecuta mas rapido y en un solo paso.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|