angularjs - 如何检索oracle sql查询的进度?

标签 angularjs oracle spring-boot spring-data-jpa

我有一个无法解决的编码问题。

需求是显示sql查询的进度。我正在使用 Spring Boot 和 Angularjs,所以想法是向 UI 显示 sql 的进度,不需要实时,但首选。基本上用户点击UI上的按钮,它会触发API从数据库检索数据,然后将完成的数据返回给UI。

我们有一个计算量大的 SQL,需要很长时间才能完成。当我们要检索的行大约是1000万行时,大约需要15分钟左右。我们希望显示 SQL 的进度,以便用户了解需要多长时间。所以我们的想法是检查已完成多少行:

假设检索到 100 万条,那么它应该返回 10%,依此类推。接下来是 100 万,然后是 20%。

我不知道如何解决这个问题。需要一些建议。

提前致谢。

最佳答案

假设这是一个长时间的选择调用,您可以运行以下查询来获取长时间运行的语句的统计信息:

select  * from v$session_longops  where time_remaining > 0 and sid = ???

sid 值应替换为运行长查询的 session 的 Oracle session ID。您可以通过查看 v$session 来确定这一点。您将需要在单独的线程中执行上述查询(或者 spring 中的任何并发执行单元)。

关于angularjs - 如何检索oracle sql查询的进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57749930/

相关文章:

java - 如何开始使用 Oracle + Netbeans 开发数据库应用程序

java - 创建bean时出错: Unsatisfied dependency expressed through constructor parameter 1

java - 如何发送文本消息而不是字节消息

angularjs - Bootstrap-select,angularjs 下拉菜单不起作用

javascript - 嵌套 View 在 Ionic 中变为空白

angularjs - $ ('#calendar' ).fullCalendar ('option' , 'lang' , 值);不起作用

sql - oracle中<number>d或<number>f是什么意思?

html - 将CSS样式应用于父类的子元素

oracle - Alfresco Community Edition,ManifoldCF和Elasticsearch可优化全文搜索

node.js - Kibana - 无法在 Windows 10 上启动 kibana