从数据表填充SQLite表的最快方法是什么

fis*_*ead 5 c# sqlite

从C#.net 2中的DataTable填充SQLite数据库的最快方法是什么?

目前我正在为表中的每一行构建插入语句.我尝试过dataadaptor,但速度似乎没有更快.目前需要5分钟才能遍历20,000行并将其写入数据库.任何sugestions?

解:

我发现使用BEGIN ... COMMIT的插入声明的区别块为我带来了显着的速度提升:

BEGIN;
INSERT INTO friends (name1,name2) VALUES  ('john','smith');
INSERT INTO friends (name1,name2) VALUES  ('jane','doe');
COMMIT;
Run Code Online (Sandbox Code Playgroud)

我的insert语句大约每个500字节,因此我将每个事务的语句数量限制为100.

Rob*_*vey 3

请参阅 SQLite 网站上的常见问题解答条目:

http://www.sqlite.org/faq.html#q19

默认情况下,每个 INSERT 语句都是其自己的事务。但是,如果您用 BEGIN...COMMIT 包围多个 INSERT 语句,则所有插入都会分组到单个事务中。提交事务所需的时间分摊到所有包含的插入语句上,因此每个插入语句的时间大大减少。