Как улучшить производительность вставки / обновления данных?

Мне нужно улучшить производительность загрузки данных. Текущий алгоритм делает полный выбор из таблицы:

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

Новые данные читаются из текстового файла (скажем, строка текстового файла на строку данных). Таблица имеет первичный ключ, содержащий два поля. Для каждой строки текстового файла он находит нужную строку по этим двум полям (то есть первичному ключу).

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

ЕслиLocate возвращаетсяTrue, он редактирует строку, в противном случае он добавляет новый.

Итак, поскольку таблица состоит из около 200000 строк, каждаяLocate Операция занимает определенное количество времени ... поэтому ей удается обновлять около 5-6 строк в секунду.

Какие вещи я должен рассмотреть, чтобы улучшить это?

Возможно, заменить поиск через этот великий выбор отдельными запросами?

Ответы на вопрос(2)

Ваш ответ на вопрос