[解決済み] 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>
例えば データベースサーバー1.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/ をご覧ください。
関連
-
[解決済み] 結果を分割するためのSQLの小数点以下の値
-
[解決済み] BCP - IDENTITY列を持つテーブルにインポートする際、キャスト指定に無効な文字値がある。
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】フラットファイルの日付カラムで「キャスト指定に無効な文字値があります」を修正する方法とは?
-
[解決済み] データベース 'tempdb' で CREATE TABLE 権限が拒否されました。
-
[解決済み] SQL Server の更新コマンドでエラー - "現在のコマンドで深刻なエラーが発生しました".
-
[解決済み] SSIS - データ損失の可能性があるため、値を変換することはできません。
-
[解決済み] テーブルが存在しない場合、"Table 'dbo.Foo' already exists." というエラーはどのように解決すればよいですか?
-
[解決済み] SQL Server: caseステートメントでUniqueIdentifierを文字列に変換する
-
[解決済み] ミリタリータイムを使用するDatetimeフィールド - 標準時間のみが必要です。
-
[解決済み] 一括読み込みができません。オペレーティングシステムのエラーコード5(アクセスが拒否されました。)
-
[解決済み] 文字列から特定の文字を削除する
-
[解決済み] クエリでカラムを落とさずにデータ型を変更するには?