![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
![]() Hola amigos, gracias por leer el post. Me encuentro desarrollando una aplicacion para el envio de correos y estoy ahora programando un asistente de importacion que importa desde un archivo (txt, csv, etc.) hacia la BD. El gran problema es que la insercion esta lentisima. Aqui esta el codigo que he creado. Utilizo Delphi 7, ZeosDB 7 y SQLite3.
Por lo que estuve mirando SQLite es rapido cuando se agrupan las inserciones o sea que yo deberia hacer una consulta INSERT y agregar todos los valores pero tengo miedo pasarme y explotar la memoria de la PC. Por favor ayuda los que conocen del tema a ver de que forma puedo insertar rapido y seguro muchos registros en SQLite 3. |
#2
|
||||
|
||||
Para empezar, quita ese:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Cita:
http://www.sqlite.org/faq.html#q19 Y en el caso de sqlite, es crucial hacer las operaciones CRUD que afecten muchos registros - exceptuando SELECT - en una transacción, ya que esta BD bloquea TODO EL ARCHIVO cuando se actualiza (otros motores bloquean solo la pagina, la tabla o el registro). Y quitar Application.ProcessMessages no afectara el desempeño de forma importante, mientras evitara que parezca "muerta" la app. Sin embargo, de ser una insercion realmente inmensa, es mejor usar un proceso asincronico o meterlo dentro de un thread separado (debes tomar en cuenta las limitaciones y configuraciones para acceder multi-thread sqlite http://www.sqlite.org/threadsafe.html)
__________________
El malabarista. |
#4
|
||||
|
||||
Entonces que solución le ves?. En la aplicación que estoy desarrollando se van a importar millones de registros o sea de lineas con correos para la BD.
Que me recomendarias hacer entonces una transaccion completade 100 en 100 o algo asi no c dime a ver que no se me ocurre nada ahora? |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿como compilar sqlite3.dll ? | JXJ | C++ Builder | 2 | 07-12-2010 22:37:50 |
Ayuda con insercion de datos en mysql usando dbExpress | pedrocrespo35 | Conexión con bases de datos | 8 | 14-10-2010 01:31:05 |
SQLite3 devuelve 01-01-1899 | salvica | SQL | 3 | 03-02-2010 11:56:55 |
Ayuda con insercion de imágenes en campo blob | aojeda | Gráficos | 0 | 29-01-2009 18:23:46 |
Lentisima la conexion con DB2 del AS400 | Javier_A | Conexión con bases de datos | 5 | 10-11-2003 16:47:07 |
![]() |
|