¿Cómo mejorar el rendimiento de inserción / actualización de datos?

Necesito mejorar el rendimiento de la carga de datos. El algoritmo actual hace una selección completa de una tabla:

select Field1, Field2,...,FieldN from Table1 order by FieldM

Los nuevos datos se leen de un archivo de texto (por ejemplo, línea de archivo de texto por fila de datos). La tabla tiene una clave principal, que contiene dos campos. Para cada línea de un archivo de texto, ubica la fila necesaria por estos dos campos (es decir, la clave principal).

query.Locate('Field1;Field2',VarArrayOf([Value1,Value2]),[]);

SiLocate devolucionesTrue, edita la fila, de lo contrario añade una nueva.

Por lo tanto, en cuanto a la tabla consta de aproximadamente 200000 filas, cada unaLocate la operación toma cierta cantidad de tiempo ... por lo que se las arregla para actualizar alrededor de 5-6 filas por segundo.

¿Qué cosas debo considerar para mejorarlo?

Probablemente reemplace la localización a través de esta gran selección con consultas separadas?

Respuestas a la pregunta(2)

Su respuesta a la pregunta