通过对不同的数据库执行2个单独的查询并在代码级别执行操作,可以获得相同的最终结果时,使用OPENQUERY在一个sql查询中组合2个数据库的主要优点和缺点是什么?我必须做到这一点,我有两种选择。感谢。
修改
为了进一步说明,使用OPENQUERY sql的过程将在一天内运行,以维护产品目录并从2个不同的数据库连接数据。一个数据库有我需要的实时数据,另一个有我需要的描述性信息。
答案 0 :(得分:1)
就个人而言,如果有可能,我会使用一个查询 - 它会减少您和服务器之间的带宽和延迟(服务器是整个图片中较快的部分)
这还取决于你在使用OPENQUERY做什么。你在组合两个查询的数据吗?它们是相关的吗?如果它们是 - 你应该真正将它们连接到OPENQUERY中的JOIN而不是尝试在前端执行复杂的连接。
答案 1 :(得分:1)
使用OPENQUERY
组合两个数据集时,让SQL Server
选择连接算法,进行提取,分配和释放内存和临时磁盘空间,以表格形式显示结果并执行其他一千个小事。
当你在代码中组合它们时,你应该自己实现所有这些。
缺点是从头开始实施这些事情需要大量的时间和精力。
好处是您可能比Microsoft开发人员更有效地执行此操作。
可以很容易地看出,这些缺点是肯定的,并且模糊的可能性很大。
答案 2 :(得分:1)
如果只是偶尔运行,我倾向于OPENQUERY让RDBMS解决问题(根据Quassnoi的回答)。例如,批量批处理或报告。
考虑到OPENQUERY的潜在(非实际)问题,我会经常或在高峰时间对它进行操作时保持警惕。在这种情况下,我还会考虑定期将OPENQUERY数据暂存到本地表中并使用此本地表。
“这取决于”: