什么是从一个DataTable
问题描述:
什么是填充从数据表SQLite数据库在C#.NET 2.什么是从一个DataTable
每一行目前我建立插入statments表中以最快的方式填充SQLite表最快的方法。我试过了一个dataadaptor,但速度似乎没有更快。目前需要5分钟循环20000行并将它们写入数据库。 任何sugestions?
解决方案:
我发现surounding插入statments块与BEGIN ... COMMIT为我工作的一个显着的速度提升:
BEGIN;
INSERT INTO friends (name1,name2) VALUES ('john','smith');
INSERT INTO friends (name1,name2) VALUES ('jane','doe');
COMMIT;
我的INSERT语句是大约500字节每个,所以我将发言次数限制为每次交易100次。
答
请参阅从SQLite的网站这个FAQ条目:
http://www.sqlite.org/faq.html#q19
默认情况下,每一个INSERT语句是它自己的事务。但是,如果使用BEGIN ... COMMIT包围多个INSERT语句,则所有插入操作都会分组到一个事务中。提交事务所需的时间将在所有随附的插入语句中摊销,因此每个插入语句的时间会大大减少。
有趣。我想知道BEGIN ... COMMIT块包含多少条语句 – fishhead 2010-01-12 23:20:56
您可以使用7200 RPM硬盘每秒执行60次事务。将您的写入速度(例如5MB/s)除以60以获得每个事务的字节数,然后将其除以您的记录大小以获得每次事务的插入次数。 – 2010-01-12 23:24:57
似乎是使用开始和提交的好方法 – Thunder 2010-01-13 05:28:08