QSqlTableModel fetchMore()效率极低

时间:2017-07-19 14:21:21

标签: sql sql-server qt

环顾四周,使用QSqlTableModel,从表中获取所有行的方法是

select();
while( canFetchMore() ) {
    fetchMore();
}

第一个选择似乎很好,但fetchMore()似乎一次抓取一行。我正在锤击Sql服务器,大约350行的获取需要几秒钟,更不用说浪费了一堆CPU。

数据库是SQL-Server。有没有更好的方法?

1 个答案:

答案 0 :(得分:0)

编辑:在DBA的一些挖掘和帮助之后,我可以确认我从两个不同的数据库中获得了不同的行为。不幸的是,它们是相同版本的SQL Server,并且都在Linux上使用ODBC驱动程序(由Microsoft编写)。在工作表下,将选择256行,然后fetchMore()的每次迭代将选择另外256行。对于另一个,select()和fetchMore()一次只能获得一行,并导致各种问题。

遗憾的是,我的解决方案是将QSqlQuery传递给QSqlDatabase。