Производительность 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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