Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/09/2011, 08:51
Avatar de Highlander
Highlander
 
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 11 meses
Puntos: 4
Respuesta: Acelerar Inserts

Cita:
Iniciado por matanga Ver Mensaje
Está claro que 7 a 10 segundos para insertar 100 registros es lento para cualquier motor de base de datos, de todos modos, por más óptima que sea la configuración de sqlite, no esperes que supere los tiempos de SQL Server, aún si se trata de la edición Express, son productos muy diferentes.

En el caso de muchas operaciones de insert consecutivas, lo que puede generar lentitud es el concepto de atomicidad de sqlite, esto significa que si la transacción es implícita (comportamiento por defecto), hará un commit por cada uno de los 100 insert, y en cada commit se produce un checkpoint, y cada checkpoint implica pasar datos del fichero WAL (fichero que almacena información en caso de rollback) a la base de datos, en conclusión, tienes 100 transacciones y 100 operaciones de I/O, para evitar esto, puedes encapsular los inserts en una única transacción explícita y ver que diferencia tienes en rendimiento.

Código:
begin transaction
insert 1...
insert 2...
...........
insert 100...
commit transaction
Saludos

Estimado


Con la transaccion el tiempo bajo de 10 sec a 0.175seg XD
__________________
Ingeniero (E) en Computación e Informática
The last man alone with god.