リンクサーバーの罠 on SQLServer

SQLServer Management StudioのGUIから or システムプロシージャsp_addlinkedserverを実行してリンクサーバーのインスタンスを作るとSELECT文を発行するとふつーに結果が返ってくるので、安心してました。

今作ってるシステムのリンクサーバーを前提に設計中でした。

ところが、UPDATEを発行すると異常に遅い。140万件のテーブルで1件更新するのに3分半くらい掛かる。リンクされてるサーバがSQLServer 2000でもSQLServer 2005 Express Editionでも実行時間に大差なし。しかもクエリ実行中に常時CPU使用率が70%程度になってました。

どうも、PRIMARY KEYを使ってくれてなさそうですね。

諦めて、UPDATEのときのみリンクサーバーを使わずに直接クエリを発行することにしました。
半日はまって腑に落ちないけどまぁいいや。#M$だし。