Производительность SQLite .NET, как ускорить работу?C#

Место общения программистов C#
Anonymous
Производительность SQLite .NET, как ускорить работу?

Сообщение Anonymous »

В моей системе ~86000 вставок SQLite заняли до 20 минут, что означает ~70 вставок в секунду. Мне нужно сделать миллионы, как мне это ускорить? Вызов Open() и Close() для объекта SQLiteConnection для каждой строки может снизить производительность? Могут ли помочь транзакции?
Типичный метод вставки одной строки:

Код: Выделить всё

public int InsertResultItem(string runTag, int topicId,
string documentNumber, int rank, double score)
{
// Apre la connessione e imposta il comando
connection.Open();

command.CommandText = "INSERT OR IGNORE INTO Result "
+ "(RunTag, TopicId, DocumentNumber, Rank, Score) " +
"VALUES (@RunTag, @TopicId, @DocumentNumber, @Rank, @Score)";

// Imposta i parametri
command.Parameters.AddWithValue("@RunTag", runTag);
command.Parameters.AddWithValue("@TopicId", topicId);
command.Parameters.AddWithValue("@DocumentNumber", documentNumber);
command.Parameters.AddWithValue("@Rank", rank);
command.Parameters.AddWithValue("@Score", score);

// Ottieni il risultato e chiudi la connessione
int retval = command.ExecuteNonQuery();
connection.Close();

return retval;
}
Как видите, вставки очень простые.


Подробнее здесь: https://stackoverflow.com/questions/435 ... -up-things

Вернуться в «C#»