Sql-Server

SQL Server OPENQUERY 與針對 AS400 的正常查詢

  • January 17, 2013

我登錄到具有 AS400 伺服器作為連結伺服器的 SQL Server 數據庫。

我發現如果我在 OPENQUERY 中執行選擇,對這個 AS400 伺服器執行查詢會快得多…

SELECT  EMEQP#
FROM _
WHERE EMALOC = '467' AND EMDLCD = 'A' AND EMSTAT NOT IN ('S', 'J', 'V')

執行時間:46秒

SELECT EMEQP#
FROM
OPENQUERY(_, '
SELECT  EMEQP#
FROM _
WHERE EMALOC = ''467'' AND EMDLCD = ''A'' AND EMSTAT NOT IN (''S'', ''J'', ''V'')
')

執行時間:1秒

有人可以解釋或連結我為什麼/如何發生這種情況嗎?

當您使用openquery在遠端伺服器上執行的查詢本身並且您只收到結果時。在連結伺服器的情況下,您的本地伺服器完成所有工作。您可能需要檢查 http://social.msdn.microsoft.com/Forums/eu/transactsql/thread/0e68f512-1e19-4c50-b343-219085d70076

引用自:https://dba.stackexchange.com/questions/33091