sql-server - 使用OpenQuery时如何连接链接服务器表和SQL Server表

标签 sql-server openquery

我使用openquery语法从链接的服务器读取数据。

SELECT * FROM OPENQUERY(LinkServer, 'SELECT * FROM Product')

我想将此链接服务器表与Sql服务器表结合起来以获取最终结果。现在,我通过拥有一个临时表来做到这一点。
SELECT * 
INTO #Temp_Products
FROM OPENQUERY(TREPO, 'SELECT ID, Name FROM Products')

SELECT * FROM #TEMP_PRODUCTS A
INNER JOIN ORDERED_PRODUCTS B
ON A.ID = B.ID

但是,由于链接服务器产品表包含大量记录,因此填充到临时表中需要花费时间。因此,我认为除了拉动所有产品信息外,如果我事先将两个表都加入到表中,可能会提高性能。

能做到吗?有人可以帮忙吗?

最佳答案

我没有能力对此进行测试,但是它确实提供了通过直接加入远程服务器来绕过#tempTable选项的机会(如果可能的话)

SELECT  A.* 
  FROM  OPENQUERY(TREPO, 'SELECT ID, Name FROM Products') A
 INNER 
  JOIN  ORDERED_PRODUCTS B
    ON  A.ID = B.ID

这是指向有关链接服务器查询的某些信息的链接,以及可能遇到的一些陷阱:http://sqlblog.com/blogs/linchi_shea/archive/2009/11/06/bad-database-practices-abusing-linked-servers.aspx

关于sql-server - 使用OpenQuery时如何连接链接服务器表和SQL Server表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12285228/

相关文章:

sql - 为什么在本地服务器上使用 OPENQUERY 不好?

sql-server - SQL OpenQuery 字符串附近的语法不正确

SQL Server : adding a calculated column for end date

c# - 我们如何处理 LINQ to SQL 中的并发错误?

.net - 如何监控数据库往返

sql - 原因 - 如果指定了 SELECT DISTINCT,则 ORDER BY 项必须出现在选择列表中

asp.net - LocalSystem 与 System 与 Local System Windows 系统帐户

sql - 从 Openquery 中删除

sql-server - SELECT * INTO [新数据库].[表] FROM [其他数据库].[表]