Tecnic2:
Estuve haciendo unas pruebas ayer transfiriendo 600,000 registros de una tabla dbase a una tabla access. Para dbase usé un TTable anque usar un Query no creo qe cambie mucho los resultados, y para Access use un TAdoTable.
Tal como sugiere
Neftalí la tabla de Access no tenía índices al momento de la transferencia.
En la primera prueba, copiando registro a registro tal como lo has hecho, el tiempo de transferencia total fue, digamos, infinito (no esperé ni con mucho a que terminara
).
Luego de jugar con varias propiedades observé un cambio drástico con dos de ellas:
Una, ya te la comentaron: CursorType := ctOpenForwardOnly
La otra, CursorLocation := clUseServer
Con estas dos, el tiempo total de transferencia fue de entre 4 y 5 minutos.
// Saludos