首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从不存在的源表到目标表的大量数据

问从不存在的源表到目标表的大量数据
EN

Stack Overflow用户
提问于 2018-05-17 04:19:41
回答 2查看 376关注 0票数 1

我在从源表到目标表中选择数据时遇到了一些问题,以便从源表中找出哪些数据尚未完全集成到目标表。

源表是另一个DBMS,在SQL Server中,我们使用一个链接服务器来访问源表的DBMS,而且集成几乎是从源表的列到列到目标(没有其他计算)。

当我执行这样的select语句时

代码语言:javascript
复制
SELECT A.*  
FROM [ORCLE_DB]..GROUP.TABLEA AS A 
WHERE NOT EXISTS (SELECT 1 FROM TABLEA as B WHERE A.ID = B.ID)

选择数据需要花费很长时间,数据量很大,大约有2000万行数据。

为了选择这些行,还有其他方法可以让SELECT执行更高效、更快吗?非常感谢,任何想法和建议都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-17 04:22:39

您可能会与“N+1”的分布式查询发生冲突。启发式算法在惩罚网络速度方面有点神秘。您可以使用验证这一点。

如果是这样的话,您可以通过以下方法修复:

  1. 创建本地临时表,以容纳链接服务器远程表中的所有必需数据,并对临时表列应用任何不同的排序规则。
  2. 将远程数据插入本地临时表中。
  3. 将本地表与临时表连接起来。
票数 1
EN

Stack Overflow用户

发布于 2018-05-17 04:36:07

如果TABLEA比[ORACLE_DB]..GOUP.TABLEA小得多,则可以从oracle创建引用SqlServer TABLEA的链接服务器,然后只查询驻留在甲骨文中的视图或执行存储过程,以便在那里执行昂贵的筛选,其中大部分数据是在SqlServer上执行的。

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

https://stackoverflow.com/questions/50383276

复制
相关文章

相似问题

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