首页 > 解决方案 > 直接从远程数据库连接两个表或连接从远程数据库查询表的两个视图之间的区别

问题描述

我在两个单独的服务器中有三个 SQL Server 数据库。

数据库 DB1 中有 2 个视图 T1 和 T2 查询 DB0 中的一些表,我想从数据库 DB2 加入它。(注意:由于其他一些限制,我不应该直接查询 DB0)

我知道我可以使用以下 select 语句从数据库 L 中加入它:

Select * from R.DB1.DBO.T1 T1 Left join R.DB2.DBO.T2 T2 on T1.ID = T2.ID;

但是,因为我已经在 DB2 中为这两个视图创建了一个视图。

Create view DB1_T1 as Select * from R.DB1.DBO.T1;
Create view DB1_T2 as Select * from R.DB1.DBO.T2;

实际上,我可以在 DB2 中简单地加入这两个视图。

select * from DB1_T1 T1 left join DB1_T2 T2 on T1.ID = T2.ID;

那么我可以问一下,我的第一个查询和第二个查询之间的数据库工作负载是否有任何差异:

1st: Select * from R.DB1.DBO.T1 T1 Left join R.DB2.DBO.T2 T2 on T1.ID = T2.ID;
2nd: select * from DB1_T1 T1 left join DB1_T2 T2 on T1.ID = T2.ID;

标签: sql-serverjoinremote-server

解决方案


推荐阅读