首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >完全外部联接的替代方案

完全外部联接的替代方案
EN

Stack Overflow用户
提问于 2019-02-15 01:19:01
回答 2查看 2.2K关注 0票数 0

我们有一个查询,用于查找两个不同数据库(一个SQL Server,一个Oracle)中的两个表之间的差异,理论上这两个表应该始终保持同步。该查询将两个表中的数据都放入表变量中,然后执行一个完整的外连接来查找差异。我们怀疑FULL OUT JOIN是造成性能问题的部分原因。

依赖两个左侧外部连接并查找不存在于连接右侧的记录是否有意义?

我们还在考虑使用临时表来进一步提高性能。

EN

回答 2

Stack Overflow用户

发布于 2019-02-15 01:46:14

您可以尝试使用EXCEPT操作符来处理复杂的连接,它应该可以在PL-SQL和T-SQL中工作。它将返回左表中与右表不完全匹配的任何值:

代码语言:javascript
运行
复制
SELECT [Field1], [Field2], [Field3]
FROM Table1
EXCEPT
SELECT [Field1], [Field2], [Field3]
FROM Table2
UNION
SELECT [Field1], [Field2], [Field3]
FROM Table2
EXCEPT
SELECT [Field1], [Field2], [Field3]
FROM Table1
票数 0
EN

Stack Overflow用户

发布于 2019-02-15 03:00:56

一种选择是进行内连接,并将结果存储在临时表中。然后执行select from TableA where not exists in tempTableWithCommonRecords和另一个select from TableB where not exists in tempTableWithCommonRecords

不能说这是否会表现得更好,因为没有足够的信息。这只是另一种选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54695832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档