试图弄清楚为什么
之间存在如此显着的差异 select * from linkedserver..tablename
和
select * from openquery(linkedserver, select * from tablename)
。
4分钟vs 13秒。
答案 0 :(得分:3)
OPENQUERY连接到目标服务器并在该服务器上运行查询并返回结果集。鉴于我认为链接服务器查询在本地服务器上执行并在连接上运行。
希望这有帮助。
答案 1 :(得分:0)
Openquery直接连接到目标服务器。尽管说过RDBMS,但你没有说出与数据通信的另一种方式是什么。
答案 2 :(得分:0)
您知道它是否正在尝试通过链接服务器登记分布式事务吗?如果在调用时观察Oracle的Trace输出,您应该能够看到发生请求的差异。 IIRC,标准链接查询将以与OPENQUERY调用不同的方式从oracle元数据请求模式信息。我不确切知道为什么会发生这种情况,但过去我遇到过类似的问题,使用OPENQUERY解决了这个问题。