我有这样一个应用, UI线程,使用 QSqltablemodel 和 Qtableview 
显示数据库里面的数据。 在UI线程中中创建了另一个
线程,用于不停采集数据,向数据库插入。 
数据很小时,显示和插入就
没有问题。但是当sqlite里数据量大了以后,只要UI线程一执行select(),另一个线程的的 query.exec() 就返回false里。请教破解方法! 
我的代码类似这样:
在UI线程中创建一个数据库连接 
- processDisplayDB =new QSqlDatabase(QSqlDatabase::addDatabase("QSQLITE","processDisplaydb"));
 -     processDisplayDB->setDatabaseName("databases/ProductionData.s3db");
 -     if(!processDisplayDB->open()){
 -         qDebug()<<"Could not open file!"<<endl;
 -         return;
 -     }else{
 -          qDebug()<<"Open file: "<<processDisplayDB->databaseName()<<" sucessfully!"<<endl;
 -     }
 -     modelProcessDisplay = new QSqlTableModel(ui->tableViewProcessDisplay,*processDisplayDB);
 -     modelProcessDisplay->setTable("processtable");
 
然后通过定时器周期触发刷新信号,
- connect(&cylicTimerProcessDisplay,&QTimer::timeout,this,&MainWindow::processDisplayUpdate_cylic);
 
通过刷新来更新tableview内容
- void MainWindow::processDisplayUpdate_cylic()
 - {
 -   modelProcessDisplay->select();
 - }
 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
另外一个线程是,建了另外一个连接到同一个数据库 
- processDB = new QSqlDatabase(QSqlDatabase::addDatabase("QSQLITE","processDB"));
 -     processDB->setDatabaseName("databases/ProductionData.s3db");
 -     if(!processDB->open()){
 -         qDebug()<<"Could not open file!"<<endl;
 -         return;
 -     }else{
 -          qDebug()<<"Open file: "<<processDB->databaseName()<<" sucessfully!"<<endl;
 -     }
 
然后数据采集到以后,写入数据库
- QSqlQuery query(*processDB);
 -     qDebug()<<"insert processtable prepare : "
 -            <<query.prepare("INSERT INTO processtable(SerialNo) "
 -                            "VALUES(:SerialNo)");
 -     query.bindValue(":SerialNo",currentSerialNo);
 -     qDebug()<<"insert processtable: "<<query.exec();
 
现在的问题是,当sqlite里数据量增大后, 
qDebug()<<"insert processtable: "<<query.exec(); 就执行不成功了。 经过检查,发现是 UI线程里 select() 引起的,但是不知道该怎么解决为好?  这个数据库是采集设备状态,肯定数据库不停增大的。
请大家帮帮我看看?谢谢