【发布时间】:2010-12-05 08:33:21
【问题描述】:
在我的系统上,大约 86000 次 SQLite 插入最多需要 20 分钟,这意味着每秒大约 70 次插入。我必须做几百万,我怎样才能加快速度?对每一行的 SQLiteConnection 对象调用 Open() 和 Close() 会降低性能吗?交易有帮助吗?
单行的典型插入方式:
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;
}
如您所见,插入非常简单。
【问题讨论】:
标签: c# .net performance sqlite insert