我有一个带有 72.000 INSERT 语句的 *.sql 脚本。我每 10.000 行放置一次 BEGIN/COMMIT TRANSACTION 语句。所以它看起来像这样:
BEGIN TRANSACTION;
INSERT INTO Symbols (Market, Symbol, Description) VALUES ('AMEX','AAAU','Perth Mint Physical Gold ETF');
... 9.999 other INSERTs
COMMIT TRANSACTION;
C# 代码如下所示:
var seedData = File.ReadAllText(sqlScriptFilePath);
using (var db = new SqliteConnection(connectionString))
{
db.Open();
var sqlCmdInsert = new SqliteCommand(seedData, db);
sqlCmdInsert.ExecuteNonQuery();
db.Close();
}
完成插入需要 30 多分钟。我究竟做错了什么?我认为将其拆分为多个交易会有所帮助。