Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-02-2005
nacho nacho is offline
Miembro
 
Registrado: feb 2005
Posts: 13
Poder: 0
nacho Va por buen camino
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?
Responder Con Cita
  #2  
Antiguo 07-02-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
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:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 07-02-2005
nacho nacho is offline
Miembro
 
Registrado: feb 2005
Posts: 13
Poder: 0
nacho Va por buen camino
cada 100,000 termino la conexion y genero una nueva para liberar espacio, pero sigue haciendo lo mismo.
Responder Con Cita
  #4  
Antiguo 07-02-2005
nacho nacho is offline
Miembro
 
Registrado: feb 2005
Posts: 13
Poder: 0
nacho Va por buen camino
cada 100,000 termino la conexion y genero una nueva para liberar espacio, pero sigue haciendo lo mismo.
Responder Con Cita
  #5  
Antiguo 08-02-2005
Avatar de sercornejov
sercornejov sercornejov is offline
Miembro
 
Registrado: may 2003
Ubicación: Neiva - Colombia
Posts: 88
Poder: 21
sercornejov Va por buen camino
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...
Responder Con Cita
  #6  
Antiguo 08-02-2005
nacho nacho is offline
Miembro
 
Registrado: feb 2005
Posts: 13
Poder: 0
nacho Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 08-02-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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.
Responder Con Cita
  #8  
Antiguo 08-02-2005
tefots tefots is offline
Miembro
 
Registrado: feb 2005
Posts: 108
Poder: 20
tefots Va por buen camino
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;
Responder Con Cita
  #9  
Antiguo 08-02-2005
Avatar de SCORDOBA
SCORDOBA SCORDOBA is offline
Miembro
 
Registrado: ago 2003
Ubicación: Llano de Brujas. Murcia
Posts: 37
Poder: 0
SCORDOBA Va por buen camino
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.
Responder Con Cita
  #10  
Antiguo 14-02-2005
Avatar de sercornejov
sercornejov sercornejov is offline
Miembro
 
Registrado: may 2003
Ubicación: Neiva - Colombia
Posts: 88
Poder: 21
sercornejov Va por buen camino
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...
Responder Con Cita
  #11  
Antiguo 14-02-2005
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 21
Julià T. Va por buen camino
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.
Responder Con Cita
  #12  
Antiguo 17-02-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 20:52:58.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi