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