FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Gracias mightydragonlor por responder, lo hago con delphi 7, en una carpeta tengo un simnumero de archivos.txt que son las tablas a exportar, leo esta carpeta y recorro cada uno de esos archivos, "todo esto es muy rapido", dentro de estos archivos estan cada uno de los registros los cuales los cargo en una variable para luego insertarlo en la db.
--esta es la idea de como quedan
Imagina que tengo 10,000 registros en un archivo, pues el insert estara 10,000 veces y lo ejecuto todo junto en un solo comando como se ve en el codigo anterior. Gracias..
__________________
Al que no le gusta enseñar, no merece aprender... |
#2
|
||||
|
||||
Entiendo, y creo armas una variable con 10 mil líneas de insert into y luego la mandas a la base de datos, lo que sucede con esto es que se genera una transacción gigantesca que hacer que la siguiente línea aún guarda información de la transacción anterior, te recomiendo que entre cada línea pongas un GO, ejemplo:
También que desactives la transacción desde delphi, con esto debería mejorar notablemente. Saludos.
__________________
mas confundido que Garavito el día del Niño. |
#3
|
|||
|
|||
Cuando dices desactive las transacciones de delphi a que te refieres?, tambien pense en crear un BEGIN TRANS en el codigo de SQL.
__________________
Al que no le gusta enseñar, no merece aprender... |
#4
|
||||
|
||||
dependiendo del control que uses para la conexión de base de datos, tienes un componente Transaction, con ropiedades, autocommit, active y demás, si este es el caso, lo pones en active false y listo.
Saludos.
__________________
mas confundido que Garavito el día del Niño. |
#5
|
|||
|
|||
Entiendo, utilizo ADOQuery. Este ejecura un commit cuando hace el ExecSQL, pero no tengo propiedades para desactivarlo.
__________________
Al que no le gusta enseñar, no merece aprender... |
#6
|
||||
|
||||
Cita:
Saludos.
__________________
mas confundido que Garavito el día del Niño. |
#7
|
|||
|
|||
Hola...
Yo te recomiendo que los commits lo hagas cada n inserciones, no después de cada una. Yo cuando he tenido que importar grandes cantidades de datos a una base de datos hago los commits cada 500 registros. Saludos... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Insert múltiple (o masivo) | santiago14 | SQL | 24 | 12-03-2011 13:19:31 |
Insert masivo en firebird | santiago14 | Firebird e Interbase | 2 | 24-05-2010 02:50:29 |
Interbase cada vez más lento... | AMINOA2R | Firebird e Interbase | 1 | 17-11-2005 17:47:00 |
Un Insert muy lento......... | sitrico | Conexión con bases de datos | 9 | 30-05-2005 15:52:21 |
|