C#/.Net 中快速批量给SQLite数据库插入测试数据
使用transaction:
varstopwatch=newStopwatch(); using(varcmd=newSQLiteCommand(db_con)) using(vartransaction=db_con.BeginTransaction()) { stopwatch.Reset(); stopwatch.Start(); foreach(variteminsorted) { sql=string.Format("insertintodb(st1,st2)values('{0}',{1})",item.Key.Replace("'","''"),item.Value); cmd.CommandText=sql; cmd.ExecuteNonQuery(); ++readCnt; if(++readCnt%1000000==0) { Console.Write("\rDumped{0}lines...",readCnt); } } Console.Write("\rCommitting...."); transaction.Commit(); stopwatch.Stop(); Console.Write("\rDumped{0}linesusing{1}seconds...",readCnt,stopwatch.Elapsed.TotalSeconds); }