6

リンクサーバーからデータを読み取るためにopenquery構文を使用します。

SELECT * FROM OPENQUERY(LinkServer, 'SELECT * FROM Product')

このリンクサーバーテーブルをSQLサーバーテーブルと結合して、最終結果を取得したいと思います。今のところ、私は一時的なテーブルを持っていることによってそれを行います。

SELECT * 
INTO #Temp_Products
FROM OPENQUERY(TREPO, 'SELECT ID, Name FROM Products')

SELECT * FROM #TEMP_PRODUCTS A
INNER JOIN ORDERED_PRODUCTS B
ON A.ID = B.ID

ただし、リンクサーバーの製品テーブルには膨大なレコードが含まれているため、一時テーブルに入力されるまでに時間がかかります。したがって、すべての製品情報を取得するのではなく、事前に両方のテーブルを結合すると、パフォーマンスが向上する可能性があると思います。

これはできますか?誰かが助けることができますか?

4

1 に答える 1

17

これをテストする機能はありませんが#tempTable、リモートサーバーに直接参加することでオプションをバイパスする機会があります(そのような接続が可能な場合)

SELECT  A.* 
  FROM  OPENQUERY(TREPO, 'SELECT ID, Name FROM Products') A
 INNER 
  JOIN  ORDERED_PRODUCTS B
    ON  A.ID = B.ID

リンクされたサーバークエリに関するいくつかの情報へのリンクと、発生する可能性のあるいくつかの落とし穴は次のとおりです。http: //sqlblog.com/blogs/linchi_shea/archive/2009/11/06/bad-database-practices-abusing-linked- servers.aspx

于 2012-09-05T16:10:13.113 に答える