30/09/2011, 08:51
|
| | | Fecha de Ingreso: junio-2006 Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 18 años, 5 meses Puntos: 4 | |
Respuesta: Acelerar Inserts Cita:
Iniciado por matanga 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. |