所以我最近发现您可以使用SQL中的EXEC AT将参数传递给链接服务器,例如Oracle。
我抓了一个查询,然后在没有参数的情况下首先进行了测试
EXEC ('SELECT RD6001 as Referencia,
RD6002 as UAP,
RD6030 as QTD_AB_PDP_W01
FROM D805DATPOR.TRP060D
where RD6001 not like ''%OP%''
and RD6001 not like ''%PT%'' ')
AT MACPAC
然而,这需要大约45秒才能获得2k行。...
如果我运行
SELECT * FROM OPENQUERY(MACPAC,
'SELECT RD6001 as Referencia,
RD6002 as UAP,RD6030 as QTD_AB_PDP_W01
FROM D805DATPOR.TRP060D
where RD6001 not like ''%OP%''
and RD6001 not like ''%PT%'' ')
这最多只需要2-3秒,如果在此之后运行EXEC AT查询,则需要1秒。为什么EXEC AT速度一开始会有所不同?