Openquery比直接查询链接表的查询速度快得多

时间:2009-05-29 19:53:00

标签: sql-server-2005 oracle linked-server

试图弄清楚为什么

之间存在如此显着的差异

select * from linkedserver..tablename

select * from openquery(linkedserver, select * from tablename)

4分钟vs 13秒。

3 个答案:

答案 0 :(得分:3)

OPENQUERY连接到目标服务器并在该服务器上运行查询并返回结果集。鉴于我认为链接服务器查询在本地服务器上执行并在连接上运行。

希望这有帮助。

答案 1 :(得分:0)

Openquery直接连接到目标服务器。尽管说过RDBMS,但你没有说出与数据通信的另一种方式是什么。

答案 2 :(得分:0)

您知道它是否正在尝试通过链接服务器登记分布式事务吗?如果在调用时观察Oracle的Trace输出,您应该能够看到发生请求的差异。 IIRC,标准链接查询将以与OPENQUERY调用不同的方式从oracle元数据请求模式信息。我不确切知道为什么会发生这种情况,但过去我遇到过类似的问题,使用OPENQUERY解决了这个问题。