[解決済み] SQL Server リンクサーバーのクエリ例
質問
Management Studio で、2 つのリンクされたサーバー間でクエリを実行したり、結合を行おうとしています。 これは、リンクされたデータベースサーバーを使用する正しい構文です。
select foo.id
from databaseserver1.db1.table1 foo,
databaseserver2.db1.table1 bar
where foo.name=bar.name
基本的には、db.tableの前にdbサーバ名を記述するだけでしょうか?
どのように解決するのですか?
フォーマットはおそらく
<server>.<database>.<schema>.<table>
例えば DatabaseServer1.db1.dbo.table1
更新 : 私はこれが古い質問であり、私が持っている答えは正しいことを知っています。しかし、私は、これを偶然見つけた他の誰かがいくつかのことを知るべきだと思います。
すなわち、リンクされたサーバーに対して結合の状況でクエリを実行する場合、そのサーバーは
ENTIRE
テーブルがリンクされたサーバから
おそらく
テーブルは、結合処理を行うために、クエリが実行されるサーバーにダウンロードされます。 OP の場合、両方の
table1
から
DB1
と
table1
から
DB2
は、その全体がクエリを実行するサーバーに転送され、おそらくは
DB3
.
大きなテーブルがある場合、この は の結果、実行に長い時間がかかることになります。 結局のところ、メモリやディスク転送速度よりも何桁も遅いネットワーク トラフィック速度に制約されることになるのです。
可能であれば、ローカル テーブルに結合せずに、リモート サーバーに対して 1 つのクエリを実行し、必要なデータを一時テーブルに取り込みます。 その後、そのテーブルからクエリを実行します。
それが不可能な場合、SQL サーバーがローカルにテーブル全体をロードしなければならない原因となるさまざまな事柄を調べる必要があります。 たとえば
GETDATE()
の使用、あるいは特定の結合などです。 その他のパフォーマンス低下要因としては、適切な権限が与えられていないことが挙げられます。
参照 http://thomaslarock.com/2013/05/top-3-performance-killers-for-linked-server-queries/ をご覧ください。
関連
-
[解決済み] テーブルの上位1レコードを更新する sql server [重複].
-
[解決済み] EF: テキストデータ型は比較できないため、DISTINCT として選択できません。
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] SQL ServerにおけるLEFT JOINとLEFT OUTER JOINの比較
-
[解決済み] SQL Server にテーブルが存在するかどうかを確認する
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】フラットファイルの日付カラムで「キャスト指定に無効な文字値があります」を修正する方法とは?
-
[解決済み] FOREIGN KEY制約で参照されているため、テーブルを切り捨てることができないのですか?
-
[解決済み] 分散型トランザクションを開始できない
-
[解決済み] BCP - IDENTITY列を持つテーブルにインポートする際、キャスト指定に無効な文字値がある。
-
[解決済み] データセットに対するSSRSクエリの実行に失敗しました
-
[解決済み] 監査失敗、クレデンシャル検証 4776
-
[解決済み] SQL Serverで文字列からすべてのスペースを削除する
-
[解決済み] NVARCHAR(MAX)の最大文字数を教えてください。[重複しています]。
-
[解決済み] SQL Server の .sql ファイルとは何ですか?
-
[解決済み] SQL Server のストアドプロシージャを SQL Developer で実行するには?