2011-03-14 80 views
0

在一個SQL查詢中使用OPENQUERY合併2個數據庫的主要優點和缺點是什麼?當通過對不同數據庫執行2個單獨查詢並執行相同的最終結果時可以獲得相同的最終結果代碼級別的操作?我必須這樣做,我有兩種選擇可供選擇。謝謝。OPENQUERY與代碼級別執行操作的優缺點

EDIT

爲了進一步闡明,使用OPENQUERY SQL將全天運行以保持產品目錄和2個不同的數據庫連接數據的過程。一個數據庫具有我需要的實時數據,另一個具有我需要的描述性信息。

回答

1

個人而言,如果可能的話,我會用一個單一的查詢 - 它減少了帶寬和你和服務器(服務器是整個畫面的速度更快部分)

這也要看是什麼之間的滯後你正在使用OPENQUERY。你結合兩個查詢的數據嗎?它們是相關的嗎?如果他們是 - 你應該真的在連接OPENQUERY而不是嘗試在前端執行復雜的連接。

1

當您使用OPENQUERY合併兩個數據集時,您讓SQL Server選擇連接算法,執行提取,分配和釋放內存和臨時磁盤空間,以表格形式呈現結果並執行其他一些小事情。

當你在你的代碼中組合它們時,你應該自己實現所有這些。

缺點是從頭開始實施這些事情需要大量的時間和精力。

好處是您可能比Microsoft開發人員更有效地做到這一點。

可以很容易地看出,缺點是確定的,其好處是可能的。

1

如果這只是偶爾運行,我傾向於OPENQUERY讓RDBMS解決問題(按照Quassnoi的回答)。例如,批處理或報告。

雖然OPENQUERY存在潛在的問題(不是真正的問題),但我會經常運行它或在高峯時刻保持警惕。在這種情況下,我還會考慮將OPENQUERY數據定期分發到本地表中並使用此本地表。

「這取決於」:使用

  • 頻率
  • 的OPENQUERY的
  • 性能
  • 數據波動
  • ...