2009-05-29 72 views
6

试图找出为什么会有这样的差异显著和OPENQUERY效果要比查询快得多直链接表

之间

select * from linkedserver..tablename

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

4分钟和13秒。

+0

这是不一样的吗? – gbn 2009-05-29 19:58:18

+0

什么样的链接服务器--SQL,ODBC,??? – Arvo 2009-05-29 20:08:08

回答

0

Openquery直接连接到目标服务器。尽管说了RDBMS,但您没有说与数据交流的其他方式是什么。

0

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

3

OPENQUERY连接到目标服务器并在该服务器上运行查询并返回结果集。而我相信链接服务器查询是在本地服务器上执行的,并通过连接运行。

希望这会有所帮助。