リモートクエリを使用してwhere句を適用すると、SQLサーバーのパフォーマンスの問題に少し戸惑います。ローカルサーバーでクエリを実行すると、クラスター化インデックスシークが使用されますが、リモートからはそうではありません。
したがって、これをローカルサーバーで実行すると、2秒かかります。
SELECT * FROM uv_order WHERE order_id > '0000200000'
ただし、これをリモートデータベースから実行するには2分かかります。
SELECT * FROM RemoteServer.data.dbo.uv_order WHERE order_id > '0000200000'
これuv_order
は非常に複雑なビューですが、ローカルサーバーから実行するときにインデックスシークが使用されるため、リモートクエリを実行するときにインデックスシークを使用できない理由がわかりません。テーブルで同じことを行うと期待どおりに機能するため、これはビューに適用するシームのみです。
なぜこれが起こるのか、そしてそれを「修正」する方法はありますか?