【发布时间】:2013-09-30 08:31:46
【问题描述】:
需要在 Oracle 和 SQL Server 之间与数据库无关,尽管我也不介意听到特定于 SQL Server 的示例。
我确定标题根本不清楚,所以让我解释一下我的想法。我在想两个问题。第一个可能会从给定表中提取一堆数据,包括主键。第二个只会拉入每个主键并将所有其他列留空。
然后我想以这样一种方式将它们联合在一起,即每当第一个查询中缺少主键时,第二个查询中的行就会被拉入。否则,如果主键存在于第一个查询中,第二个查询中的行被忽略。
快速示例:
第一个查询拉入两列(第一列是主键):
1 1
2 1
第二个查询拉进来:
1 NULL
2 NULL
3 NULL
所以我希望整个查询都被引入:
1 1
2 1
3 NULL
在性能方面,实现这一目标的最佳方法是什么?考虑一个可能有大量行和列的示例,第一个查询可能非常消耗性能(尽管第二个当然应该总是很简单,只需从列表中提取主键并填充其余部分列输出为 NULL 或静态值)。
【问题讨论】:
-
SSIS 查找转换可能是一个好方法。它可以比较数据源并根据条件选择数据。 SSIS Oracle Attunity 可以非常快地将数据加载到 Oracle 或从 Oracle 加载数据,但它需要 Enterprise SQL 版本。通过链接服务器会很慢。
标签: sql sql-server performance oracle