2009-02-03 49 views
1

問題:我必須從SQL Server數據庫和Oracle數據庫中提取數據,並將它們放在一個數據集中。我遇到的問題是:SQL Server查詢需要一個只能從Oracle查詢返回中找到的ID。Oracle和SQL數據集

我想知道的是:我怎樣才能以這樣的方式來解決這個問題,使得性能不受影響?

回答

1

您可以通過鏈接服務器或將數據全部轉移到一側來完成此操作。這一切都將取決於每一方的數據量。

一般的經驗法則是在數據最多的一面執行查詢。

舉例來說,如果設定甲骨文的ID雖小,但在SQL Server集很大,你做一個鏈接的服務器到Oracle側和SQL Server端執行此:

SELECT * 
FROM sqlservertable 
INNER JOIN linkedserver.oracletable 
    ON whatever 

在在這種情況下,如果Oracle方面很大(或者在需要與SQL Server端連接之前不能預先過濾),那麼性能通常會很差 - 並且通過拉動整個表(或者最小的子集可以確定)到SQL Server表中,並在SQL Server端執行全部JOIN操作。