Masseneinfügung

SQLite hat keine besondere Möglichkeit, Daten in massenweise einzufügen. Um optimale Leistung beim Einfügen oder Aktualisieren von Daten zu erzielen, stellen Sie sicher, dass Sie die folgenden Aktionen ausführen:

  • Verwenden Sie eine Transaktion.
  • Verwenden Sie denselben parametrisierten Befehl wieder. Bei nachfolgenden Ausführungen wird die Kompilierung des ersten Befehls erneut verwendet.
using (var transaction = connection.BeginTransaction())
{
    var command = connection.CreateCommand();
    command.CommandText =
    @"
        INSERT INTO data
        VALUES ($value)
    ";

    var parameter = command.CreateParameter();
    parameter.ParameterName = "$value";
    command.Parameters.Add(parameter);

    // Insert a lot of data
    var random = new Random();
    for (var i = 0; i < 150_000; i++)
    {
        parameter.Value = random.Next();
        command.ExecuteNonQuery();
    }

    transaction.Commit();
}