У меня есть скрипт * .sql с 72 000 операторов INSERT.
Я помещаю операторы BEGIN / COMMIT TRANSACTION каждые 10.000 строк.
Так это выглядит примерно так:
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 минут. Что я делаю неправильно? Я думал, что разделение его на несколько транзакций поможет.