サーバー(ServerA)で実行されているSQLスクリプトがあります このサーバーにはリンクサーバーが設定されています(ServerB) - これはデータセンターのサイト外にあります。リンクサーバーを使用した非常に遅いSQLアップデート
このクエリは、比較的speeidily作品:このクエリを使用して、同じテーブルを更新する際に
SELECT OrderID
FROM [ServerB].[DBName].[dbo].[MyTable]
WHERE Transferred = 0
はしかし、:
UPDATE [ServerB].[DBName].[dbo].[MyTable]
SET Transferred = 1
それだけで1カラムがあります場合でも、どこ(完了するために、> 1分かかります転送済み= 0)
これはゆっくりと動作する理由はありますか? MyTableに「転送済み」列のインデックスを付ける必要がありますか?
ちょっと考えました。あなたは 'where = transferred'をupdateステートメントに追加しようとしましたか?それが違いを生むかどうかはわかりません。また、2つのクエリの実行計画を見てみましょう。 – Blorgbeard