リンクサーバーからデータを読み取るために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
ただし、リンクサーバーの製品テーブルには膨大なレコードが含まれているため、一時テーブルに入力されるまでに時間がかかります。したがって、すべての製品情報を取得するのではなく、事前に両方のテーブルを結合すると、パフォーマンスが向上する可能性があると思います。
これはできますか?誰かが助けることができますか?
これをテストする機能はありませんが、リモートサーバーに直接参加することで#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