我使用openquery语法从链接服务器读取数据。
SELECT * FROM OPENQUERY(LinkServer, 'SELECT * FROM Product')
我想将此链接服务器表与Sql server表连接以获得我的最终结果。现在,我有一个临时表。
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
但是,由于链接服务器产品表包含大量记录,因此填充临时表需要一些时间。所以我认为不是拉动所有产品信息,如果我事先加入两个表,它可以提高性能。
可以这样做吗?有人可以帮忙吗?
答案 0 :(得分:15)
我没有能力对此进行测试,但它确实提供了通过直接加入远程服务器(如果可以连接)来绕过#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