transaction()函数加入没有提高数据库运行速度的情况。。

weixin_38065208 2019-09-19 05:42:36
QSqlDatabase::database().transaction();int level = m_level-2;   int beginCode =0;   int roomID =1;   query.exec(QString("select id from t_room where floorID = (select id from t_floor where projectid = %1)").arg(m_wb->currentProject()));   if (query.next())   {    roomID = query.value(0).toInt();   }   sql = QString("select Name,Count from t_infaredDeviceMenu where ProtocolName = '%1' and Level ='%2'").arg(m_protocolName).arg(level+1);   query.exec(sql);   while(query.next())   {    int count = query.value(1).toInt();    QString Name = query.value(0).toString();    if (count==1)    {     addAutoDevices(beginCode,level+1,id,Name,moduleID,roomID);     beginCode++;    }    else    {     for (int i=0;i<count;i++)     {      if (i!=0)      {       Name = Name +QString("_%1").arg(i+1);      }      addAutoDevices(beginCode,level+1,id,Name,moduleID,roomID);      beginCode++;     }    }   }QSqlDatabase::database().commit(); 上面这个是代码,其中红色部分是一个递归调用函数,这段代码总共插入了600多条数据,递归函数也执行了大概600次总共。。用时是1分28秒,然后关键是,绿字部分不管我加不加,这段代码的执行时间都是1分28秒左右,好像是完全不起作用了,有没有高人能解答下小弟的疑问。。。
...全文
13 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧