请问下不同数据库下的表如何做join呢?

crossbet 2019-03-06 05:26:27
如标题所说,数据库A中的表TableA部分字段值对应了数据库B里的表TableB记录
我现在的做法是先将TableA和TableB都取到两个DataTable中,然后遍历A的记录在B中进行查找,这样做下来感觉效率很低。

另外有一种思路是转换成IQueryable,再用lamba表达式来做连接,不知道性能会不会有提升
...全文
688 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2020-04-03
  • 打赏
  • 举报
回复
[quote=引用 5 楼 圣殿骑士18 的回复:] 如果数据量不大,那么全部取出来,再比较。没什么问题。用DataTable和用List都行。当然List最好,DataTable不是不好,是该淘汰了。 如果两个表数据量都大,而最终比较后取的数据量比较小,那么建议用reader,读取过程中比较和处理。 ========== 请问,第二种方案具体怎么做呢?我用过提到的第一种,但是现在表数据越来越大,速度很慢
正怒月神 2019-03-07
  • 打赏
  • 举报
回复 1
数据库A和数据库B,是在一个服务器上嘛? 如果是同一个mssql的两个库,那么直接跨表join就可以了。 [库名].[dbo].[表名] 如果是两个不同的服务器上,那么我记得sql也是有跨库登录语句的,登陆后还是可以跨库查询。 具体的你可以查一下。 实在不行,那就从两个库进过筛选条件,把数据读取下来,然后在代码里join
圣殿骑士18 2019-03-07
  • 打赏
  • 举报
回复
如果数据量不大,那么全部取出来,再比较。没什么问题。用DataTable和用List都行。当然List最好,DataTable不是不好,是该淘汰了。

如果两个表数据量都大,而最终比较后取的数据量比较小,那么建议用reader,读取过程中比较和处理。

==========
最新文章:解读经典《C#高级编程》 第四章之 泛型约束 https://mp.weixin.qq.com/s/ZHiaTpzBD-OdPs0Eo7iawQ
欢迎关注微信公众号 “产品技术知与行” ,打造全面的结构化知识库,包括原创文章、免费课程(C#,Java,Js)、技术专题、视野知识、源码下载等内容。
NCScan 2019-03-07
  • 打赏
  • 举报
回复
把其中一个数据拿出来,放另一个数据库的零时表不好吗?
小眼聚光~ 2019-03-06
  • 打赏
  • 举报
回复
1、可以分别读取不同数据库的对应数据,在服务器的内存中对数据进行整理操作。(这个方式应该数据量较大的时候会有问题,而且其实效率不高,但是做法简单)
2、也可以sql语句连接其他数据库进行查询(语句怎么写的百度下哈,我记得貌似有的),但是我觉得这个方式对我而言因为不常用到,没有实际经验。
  • 打赏
  • 举报
回复
跟是 DataTable 还是 IQueryable<> 无关,主要是查询过程中不要把无关的数据记录读取到客户端来反序列化,否则几乎所有时间都耗在通讯上了。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧