SQL Server の特定のサーバーに接続していて、別のサーバーのテーブルを参照するクエリを使用している場合、クエリの速度は遅くなりますか。にいる)?サーバークエリをクロスするよりも、そのテーブルを現在のサーバーにインポートする方が効率的かどうかを知りたいので、質問します。
2 に答える
場合によると思います。ええ、おそらくあなたが望んでいた答えではありませんが、それは状況によって異なります. リンク サーバーの使用にはコストがかかります。特に、返そうとしている行の数や実行しようとしているクエリの種類によっては、コストがかかります。クエリの実行計画を表示し、リンク サーバー テーブルをヒットするためにどれだけ使用されているかを確認できるはずです。結果を返すのにかかる時間とともに、必要かどうかを判断するのに役立つでしょう。
テーブルをローカルに持ち込むことに関しては、それも依存します。最新のデータが必要ですか、それともデータは静的ですか? 静的な場合、テーブルをインポートすることは悪い考えではありません。そのデータが絶えず変化し、変更が必要な場合、これは最適なソリューションではない可能性があります。毎晩これを行うために SSIS パッケージを作成することをいつでも検討できますが、これも場合によって異なります。
幸運を。
sgeddes が言及しているように、それは依存します。
リンク サーバー クエリに関する私自身の経験では、大きなテーブルではかなり遅いということでした。クエリの書き方によっては、ステートメントを実行しているサーバーで述語を評価する必要がある場合があります (述語に参加している場合)。つまり、とにかくテーブル全体をそのサーバーに転送し、フィルタリングする結果。そして、それはパフォーマンスにとって間違いなく悪いことです。