Jak poprawić wydajność wstawiania / aktualizacji danych?

Muszę poprawić wydajność ładowania danych. Bieżący algorytm powoduje pełne wybranie z tabeli:

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

Nowe dane są odczytywane z pliku tekstowego (powiedzmy, tekstowa linia na wiersz danych). Tabela ma klucz podstawowy, zawierający dwa pola. Dla każdego wiersza pliku tekstowego lokalizuje wymagany wiersz według tych dwóch pól (tj. Klucza podstawowego).

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

JeśliLocate zwracaTrue, edytuje wiersz, w przeciwnym razie dołącza nowy.

Tak więc, o ile tabela składa się z około 200000 wierszy, każdyLocate operacja zajmuje pewną ilość czasu ... więc udaje się zaktualizować około 5-6 wierszy na sekundę.

Jakie rzeczy należy rozważyć, aby to poprawić?

Prawdopodobnie zastąpienie lokalizowania przez ten świetny wybór oddzielnymi zapytaniami?

questionAnswers(2)

yourAnswerToTheQuestion