Qt:不要使用QSqlQuery::execBatch函数

Qt:不要使用QSqlQuery::execBatch函数

为了能执行通用的sql语句,兼容较多的数据库,并且尽量高效,就使用了这个QSqlQuery::execBatch函数。但一次偶然机会,跟踪到qt的这个QSqlQuery::execBatch函数源代码,发现仅仅是循环调用exec,非常失望。于是,进一步查询了qt的一些文档。

qt文档中明确说明,如果对应的数据库驱动不支持批量操作,则execBatch就仅仅是循环调用exec。那么,哪些数据库支持execBatch批量执行呢?qt的更新日志中注明,qt4.2开始支持此函数,且当时只支持Oracle数据库。而查阅qt6.3的源码,当前也仍然只支持Oracle数据库。

而本人初以为,execBatch能加快调用速度,以至于为了尽可能使用此函数,多次生成批量的格式,代码逻辑也复杂不少。现在看来,这样的处理反而降低了性能,因此,也就没必要使用execBatch函数了。

因此,如果不是Oracle数据库,请不要使用QSqlQuery::execBatch函数。而如果使用此函数,自然也得控制批量执行的数据记录行数,毕竟每次调用都得有个数量上限。

 

转载请注明来源,谢谢。

有偿解决C++编程问题,承接项目定制开发;寻一份全职或兼职Windows C++开发工作。联系邮箱:[email protected]


老刀的技术日志 » Qt:不要使用QSqlQuery::execBatch函数

发表评论