我使用的是SQL Server 2012,它将Oracle作为链接服务器。
如果我直接在Oracle:上运行一个简单的查询
select *
from Server..TableA
where Name like 'Jack%'
它需要0.9秒。
在SQL Server上执行同样的操作需要2分钟!
这是一个已知的问题吗?关于如何解决这个问题,有什么想法吗?
如果OpenQuery
总是比..Servername
快得多,则是对以下解决方案的响应。为什么第二种方法存在?
我通常不会回答我的问题,但由于这种缓慢浪费了几个小时我终于找到了一个解决方案,我会把它发布在这里。希望这能挽救别人几个小时的生命:(
解决方案是使用TSQL OpenQuery函数:
例如
SELECT * FROM OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');
根据我目前的经验,OpenQuery真的很快!