从java连接到多个sql server数据库
我有一些数据要从多个sql server数据库(如200)中读取。在这些数据库中,每个数据库中都有10个表,我需要从中读取数据,我如何使用java以最好的方式做到这一点从java连接到多个sql server数据库,java,sql-server-2008,multiple-databases,Java,Sql Server 2008,Multiple Databases,我有一些数据要从多个sql server数据库(如200)中读取。在这些数据库中,每个数据库中都有10个表,我需要从中读取数据,我如何使用java以最好的方式做到这一点 提前感谢维护数据库连接队列,使用这些数据库的IP地址,使用多线程连接到每个数据库,现在当数据库的工作完成时,关闭该数据库的连接并从队列中删除连接。维护数据库连接队列,使用这些数据库的IP地址,使用多线程连接到每个数据库,现在当数据库的工作完成时,关闭该数据库的连接并从队列中删除连接。并发到救援 要为繁重的工作负载实现最佳吞吐量,
提前感谢维护数据库连接队列,使用这些数据库的IP地址,使用多线程连接到每个数据库,现在当数据库的工作完成时,关闭该数据库的连接并从队列中删除连接。维护数据库连接队列,使用这些数据库的IP地址,使用多线程连接到每个数据库,现在当数据库的工作完成时,关闭该数据库的连接并从队列中删除连接。并发到救援 要为繁重的工作负载实现最佳吞吐量,请从一开始就以多线程方式编写应用程序,然后可以根据性能限制来加速或限制它 是一种以可伸缩方式分解任务的好方法。我建议您将每个数据库导入任务定义为,然后从中“调用”所有任务 我会这样做:
List<YourCallableImportJobs> work= yourFactory.getAllWork();
// this variable can be used to tweak performance.
// Begin with a low number and then ramp it up if it's too slow.
int nThreads=10;
ExecutorService service = ExecutorService.newFixedThreadPool(nThreads);
List<Future<T>> futures= service.invokeAll(work);
List work=yourFactory.getAllWork();
//此变量可用于调整性能。
//从一个较低的数字开始,如果速度太慢,则将其调高。
int=10;
ExecutorService=ExecutorService.newFixedThreadPool(n线程);
List futures=service.invokeAll(工作);
您可以轮询以检查工作何时完成
最后,如果希望并发访问每个数据库(特别是目标数据库),我建议使用连接池机制,例如。这意味着您不会花费太多时间打开和关闭连接。(您甚至可以将每个导入分解为单独的查询—这也是连接池的作用所在)
希望这有助于营救并发性 要为繁重的工作负载实现最佳吞吐量,请从一开始就以多线程方式编写应用程序,然后可以根据性能限制来加速或限制它 是一种以可伸缩方式分解任务的好方法。我建议您将每个数据库导入任务定义为,然后从中“调用”所有任务 我会这样做:
List<YourCallableImportJobs> work= yourFactory.getAllWork();
// this variable can be used to tweak performance.
// Begin with a low number and then ramp it up if it's too slow.
int nThreads=10;
ExecutorService service = ExecutorService.newFixedThreadPool(nThreads);
List<Future<T>> futures= service.invokeAll(work);
List work=yourFactory.getAllWork();
//此变量可用于调整性能。
//从一个较低的数字开始,如果速度太慢,则将其调高。
int=10;
ExecutorService=ExecutorService.newFixedThreadPool(n线程);
List futures=service.invokeAll(工作);
您可以轮询以检查工作何时完成
最后,如果希望并发访问每个数据库(特别是目标数据库),我建议使用连接池机制,例如。这意味着您不会花费太多时间打开和关闭连接。(您甚至可以将每个导入分解为单独的查询—这也是连接池的作用所在)
希望这有帮助听起来像是Hadoop的一个例子?你最担心的是什么?速度记忆?还有什么吗?它需要相当的速度,这将是一个夜间导入过程,将在2-3小时内完成,还有4个其他应用程序需要从夜间导入到我们的应用程序中,数据大小为100 Mbs。听起来像是Hadoop的例子?您最担心的是什么?速度记忆?还有什么吗?它需要相当的速度,这将是一个夜间导入过程,将在2-3小时内完成,还有4个其他应用程序需要从夜间导入到我们的应用程序中,数据大小为100 Mbs。感谢Amir提供的解决方案,我将尝试这一点。感谢Amir提供的解决方案,我将尝试这一点。