2009-05-29 47 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連接到目標服務器並在該服務器上運行查詢並返回結果集。而我相信鏈接服務器查詢是在本地服務器上執行的,並通過連接運行。

希望這會有所幫助。