如何使用JDBC跟踪大型SQL Server查询的进度



我的JavaFX应用程序有一个进程,它在启动时从单个SQL Server查询加载大量数据。这通常需要几分钟才能完成。

我的目标是包含一个ProgressBar,以显示已经检索到的当前/总计行,但我找不到用JDBC检索SELECT语句进度的方法。

现在,我只是执行一个查询,以在服务器返回所有数据后获得单个ResultSet作为返回。

是否可以";听";以这种方式查询进度?或者以某种方式限制循环中的查询(即:SELECT TOP 100(,从上一次迭代结束的地方开始,直到检索到所有结果?

@Gatusko提供的anwser很好,但不能解决您的问题。。。

事实上,您会在任何地方看到进度条的使用越来越少,因为它不适合SOA架构(进程的远程调用(。

替换进度条的诀窍是一个永远旋转的圆圈,直到结果出现!哪个这样的组件,不需要请求进程的进度状态,这在RDBMS中真的永远都不可能!

JDBC无法查看查询的状态,因为查询是由数据库执行的。因此,JDBC驱动程序将查询发送到数据库并等待响应。JDBC是获取结果的人,它不跟踪查询的复杂性或查询的状态。我对解决这个问题的建议是获得正在处理的文档总数,然后进行一批查询。这就是我为大量结果所做的。分而治之。

最新更新