数据库sqlite3能否执行多线程写操作?

问题描述

数据库sqlite3能否执行多线程写操作?

VS代码:
#pragma omp parallel for

for(int i=0;i<OutNum;i++)
{
    Outtable.setRow(i);
    Out = Outtable.getStringField(0);

    for(int j=i+1;j<OutNum;j++)
    {
        Outtable.setRow(j);
        OutRe = Outtable.getStringField(0);
        bufSQL.format("insert into OutSet_OverSet select ...;
        db.execDML(bufSQL);
    }
}

另外对于for循环执行数据库写操作,还有什么方法能对其进行优化?
这段代码执行的时间太长了

解决方案

sqlite3应该支持多线程,你应该是主要优化你的sql语句,估计有性能问题

解决方案二:

用批处理写入数据库更加有效率

时间: 2024-10-28 21:47:02

数据库sqlite3能否执行多线程写操作?的相关文章

如何在Weblogic的全局事务执行多线程操作

今天有人提出了一个诡异的要求,要求在全局事务中执行多线程操作.他们 全局事务中涉及两个数据库中的多个表,如果单线程那么走完,相应时间上不满 足要求,说白了就是比较慢,于是提出了这样的要求.从JTA的规范来看, transaction(TX)和thread是密切相关的,TX一般是不能在应用线程间传递的, 即我主线程起一个全局事务,然后我把这个事务传递给其他我新起的线程,单纯 的变量传递没问题,但这个事务是不能被transaction manager(TM)识别的,TM 对TX的管理有他自己的方式.

C# 多线程问题,使用for循环产生多个线程执行相同的操作

问题描述 如下面的代码publicvoidbtnRead(){for(inti=0;i<10;i++){ThreadthreadReadData=newThread(newParameterizedThreadStart(delegate(objectobj){ReadData(i);}));threadReadData.IsBackground=true;threadReadData.Start(i);}}privatevoidReadData(objectobj){while(true){s

文件操作-多线程中对文件进行写操作

问题描述 多线程中对文件进行写操作 我的多线程部分程序是这样的: UINT ClientThread(LPVOID pParam) { EnterCriticalSection(&cs); Cw_dispctrlDlg dlg=(Cw_dispctrlDlg)pParam; while(true) { -- -- dlg->file_net.Open(dlg->str_file_netpath, CFile::modeCreate | CFile::modeNoTruncate | C

linux中在文件夹下新建文档属于写操作(w)还是执行(x)操作

问题描述 linux中在文件夹下新建文档属于写操作(w)还是执行(x)操作 众所周知,linux下文档和文件夹都有rwx操作,读鸟哥的私房菜中说不能在没有x权限的文件夹下执行一些命令,比如man,ll等,那在文件夹中新建文档是属于写操作还是执行操作? 解决方案 这要看你是怎样新建的这个文件,比如用 touch 来创建的文件,正常情况下就不会有x权限. 但如果你有执行gcc的权限,那么你用gcc编译一个自己写的c文件得到一个可执行执行程序时通常就有x权限了. 还有一些脚本文件,一般新建时用vi或e

重命名数据库时,出现“无法用排他锁锁定该数据库,以执行该操作”

   今天在用T-SQL语句重命名数据库时, Exec sp_renamedb'text',text1' go 始终出现"无法用排他锁锁定该数据库,以执行该操作"这个提示,? 这时,我们要确保没有任何用户正在使用数据库,然后将数据库设置为单用户模式. 右击"text"数据库,选择"属性"   在选项,限制访问里,改为SINGEL_USER,确定之后,再执行T-SQL语句.          

asp.net中执行存储数据操作时数据被自动截取的一种情况

asp.net|数据|执行 今天在做东西的时候,发现一个很奇怪的问题,数据库(SqlServer)中的字段设置的类型为ntext,但是保存的数据总是很短,开始以为在程序的某段设置了长度限制,在设置了断点跟踪调试发现穿递的数据很正常,但是在执行了存储操作以后保存的内容总是很短,数了数保存的字符个数为16个,数据库中设置的该字段类型ntext的长度也为16,于是想是不是数据库的bug,就在查询分析器里写insert语句进行测试,结果发现保存的内容很正常,这样问题肯定在程序当中,最后检查到在构造Sql

多线程程序操作共享区域(文件)的一点体会

     最近比较忙,很久没有写博客了,持续长时间的编程,使得我完全沦为程序匠人.但是感觉却不是想别人那么糟糕,毕业已经快两年了,我为我的编程兴趣仍然如此强烈而感到欣慰,也对一直以来比较关心的"行业应用软件架构设计"有了更深的了解,这坚定了我的信念!      今天晚上,终于有了一点点闲暇的时间,就想大家分享下"多线程程序操作共享区域(文件)"的一些体会吧!        多线程相信大家都陌生吧,多线程程序操作共享区域应该也不陌生吧,但是大家是否经历过多CPU的服务

redis-关于Redis数据库的java代码多线程读写性能问题,希望可以帮忙看看、、、

问题描述 关于Redis数据库的java代码多线程读写性能问题,希望可以帮忙看看... 渣渣一枚..由于项目关系,需要用到内存数据库来存key-value所以就开始研究redis这个数据库.现在已经把redis放在了CentOS的测试服务器上,然后通过网上的资料写了链接代码! 测试用了100个线程,每个线程插入10000条数据,结果竟然花了**200s**, 同事用memcached测试同样的数据只要了**20s** 而在linux中用redis自带的redis-benchmark查询性能 结果

[急等解答!!]c#连接sql数据库后,执行完语句无法显示在datagridview里

问题描述 各位前辈!!!我是一个c#新手,最近自学的过程中发现点问题c#连接sql数据库后,执行完语句无法显示在datagridview里....我做的是一个仓库系统,界面载入以后有以下几个控件:产品名称:combo_name下拉(已经绑定到产品信息表中了)操作数量:textbox1可输入操作数量出入库选择:combo_inout下拉(包含in和out2个选项)产品编号:textbox2只可显示combo_name下拉里产品在数据库里的编号(已经与库里产品信息表绑定,在combo_name改变时