Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring引导应用程序运行带有多个jdbc连接的parllel查询_Java_Spring Mvc_Spring Boot_Jdbc - Fatal编程技术网

Java Spring引导应用程序运行带有多个jdbc连接的parllel查询

Java Spring引导应用程序运行带有多个jdbc连接的parllel查询,java,spring-mvc,spring-boot,jdbc,Java,Spring Mvc,Spring Boot,Jdbc,我正在寻找技术解决方案,从一个数据库中查询数据,并使用JavaSpringBoot独立应用程序将其加载到SQLServer数据库中 select a.student_id max(decode(a.marks_limit, 99.99,100,null )) as max_marks, b.student_city_code "NYC", from student a, student_info b where a.student_id=b.student_id and a.student_id

我正在寻找技术解决方案,从一个数据库中查询数据,并使用JavaSpringBoot独立应用程序将其加载到SQLServer数据库中

select a.student_id
max(decode(a.marks_limit, 99.99,100,null )) as max_marks,
b.student_city_code "NYC",
from student a, student_info b
where a.student_id=b.student_id
and a.student_id in (''a123,'b123','c123')
and  b.adress_modified > TO_TIMESTAMP('2018/09/13 10:13:18', 'YYYY/MM/DD HH:MI:SS')
group by a.student_id, b.student_city_code
我们正在连续运行此oracle查询,它需要1小时的执行时间和大约3000万条记录,为了获得更好的结果,我们计划将此查询拆分为3个类似的查询,因此在每个查询中使用in-operator planning to use=,而不是在一个查询中使用a.student\u id=“a123”,在第二个查询中使用a.student\u id=“b123”,在第三个查询中使用a.student\u id=“b123”,我相信每次查询执行1小时将减少到20分钟左右

作为it计划的一个技术解决方案,它计划使用Oracle批处理流并行执行所有多个查询并将结果提交到目标表。据我所知,Oracle JDBC驱动程序支持某种流式传输。当我们迭代ResultSet时,它只将fetchSize行加载到内存中

请帮助了解示例代码库,了解如何动态打开多个源和目标JDBC连接,并在流程完成后关闭。Java8具有广泛的包。请建议您是否有更好的解决方案

oracle-jdbc-con1     oracle-jdbc-con2        oracle-jdbc-con3
       |                   |                   |        
       |                   |                   | 
       V                   V                   V 
sql-jdbc-con1          sql-jdbc-con2         sql-jdbc-con3

任何类型的程序都将是开销。另外,我假设它是一次性活动,不需要应用程序来完成

我们最近将两个表从MySQL迁移到MS SQL Server,在尝试了两个选项后,我们使用了SSMA

SSMA是MS Sql Server自己的工具,用于从其他数据库中获取数据库或模式或表。当您将单表从oracle迁移到sql server时,它还负责数据类型转换

你所需要的就是 -安装SSMA(仅限windows) -配置源和目标数据源 -在windows应用程序上选择数据库对象 -单击“迁移”

SSMA有自己的版本专门针对Oracle
OracleToSQL

这里有一个示例,但是您会找到大量的分步指南。

为什么需要使用spring boot来完成此操作?似乎有些过分。Is应该连续24/7运行,或者每1小时运行一次。我们的项目也需要它,所以我们需要这样做