db.BeginTransaction();
循环插入30万次
db.commit()这个时间大约是50多秒请问能有什么方法更快点吗?连接字符串Data source=xxx.db;Initial Catalog=sqlite;Integrated Security=True;Version=3;Synchronous=0;Synchronous=0加上不加上都是50多秒,好像没区别。
谢谢!

解决方案 »

  1.   

    一个简单的方法,你可以把多条插入语句拼接为一条,减少插入请求的次数,比如把一千条数据的插入拼接为一条sql语句。
      

  2.   

    INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9),(10,11,12)
      

  3.   

    没见过一个事务由30万个部分组成
    如果30万条数据相互平行,互相独立,去掉事务transaction
      

  4.   

    1、去掉事务,每一条插入应该是独立的,不影响其它的;
    2、用参数化SQL语句。
      

  5.   

    sqllite的性能与磁盘性能关系很大的.开启事务, 预处理, 传值参数化后还不行, 搞个快点的磁盘试试看