2 回答
TA贡献1825条经验 获得超4个赞
您可以尝试的各种策略:
使用您的 Java 程序在服务器 A 上创建一个临时表,然后从服务器 B 复制您需要的数据(在服务器 B 上使用 SELECT,在服务器 A 上使用 INSERT)。然后在服务器 A 上执行适当的查询,以将该服务器上已有的表与临时表连接起来。您可能有权在任一服务器上创建临时表。
如果您有权创建永久表,请在服务器 A 上使用永久表。然后,每当用一个 Java 程序更改数据时,将数据从服务器 B 复制到服务器 A,并用另一个 Java 程序查询它。
将两个表中较小表中的数据插入 Java 程序中的 HashMap,其中 HashMap 的键是连接变量。然后逐行处理较大表中的结果集,在 HashMap 中查找连接的条目。
切换到 MariaDB 并使用 CONNECT 存储引擎使您的 SQL Server 表可用于 MySQL 查询。
你如何选择策略?这取决于很多事情。你能从你的DBA krewe那里得到多少合作?你的桌子有多大?你总是处理所有的行,或者有时是一个子集?(您的示例查询没有WHERE
子句,所以您可能正在处理所有内容。)您能否在 JVM 实例中获得足够的 RAM 来容纳整个表?您需要每小时执行多次还是每周执行一次?每次可以花多少时间?
专业提示:对于像您的示例这样的查询,首先(在两种服务器上)给出 SQL 命令,SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
这样您就不会在检索结果集时阻止其他程序访问您的表。
添加回答
举报