我最近阅读了有关SQLite的文章,并认为可以尝试一下。当我插入一条记录时,它执行得很好。但是,当我插入一百时,它需要五秒钟,并且随着记录数的增加,时间也会增加。有什么事吗 我正在使用SQLite包装器(system.data.SQlite):
(system.data.SQlite)
dbcon = new SQLiteConnection(connectionString); dbcon.Open(); //---INSIDE LOOP SQLiteCommand sqlComm = new SQLiteCommand(sqlQuery, dbcon); nRowUpdatedCount = sqlComm.ExecuteNonQuery(); //---END LOOP dbcon.close();
将BEGIN\ END语句包装在您的批量插入内容周围。Sqlite已针对事务进行了优化。
BEGIN
END
dbcon = new SQLiteConnection(connectionString); dbcon.Open(); SQLiteCommand sqlComm; sqlComm = new SQLiteCommand("begin", dbcon); sqlComm.ExecuteNonQuery(); //---INSIDE LOOP sqlComm = new SQLiteCommand(sqlQuery, dbcon); nRowUpdatedCount = sqlComm.ExecuteNonQuery(); //---END LOOP sqlComm = new SQLiteCommand("end", dbcon); sqlComm.ExecuteNonQuery(); dbcon.close();