2016-11-04 9 views
0

リンクサーバーがオンラインであるかどうかを確認するために2つの方法を試みました。構成された数百のリンクサーバーが実際にオンラインであるかどうかを確認する必要があることを考えれば、私はより迅速に可用性をチェックする方法を探しています。残念ながら、pingはオプションではありません。これらのサーバはファイアウォールの背後に隠されている可能性があります。ファイアウォールの後ろにはデータベースポートだけが開かれているからです。リンクサーバーがオンラインであるかどうかをSQL Serverが遅くチェックする

Select 1 
Where Exists (Select COUNT(*) 
       From [LINK-RC].[DeltaV_KB].INFORMATION_SCHEMA.TABLES) 

declare @retval bit 
exec @retval = sys.sp_testlinkedserver [LINK-RC]; 
+0

サーバーに接続するだけで、接続処理の高速化やオーバーヘッドはありますか。私の経験上、リンクされたサーバーは本当に遅いです。 –

+0

(テストされたことがない)何が[リモートログインタイムアウト](https://msdn.microsoft.com/library/ms175136)を調整していますか(バージョンによってはデフォルトは10秒または20秒です)。明らかに、この設定をプロダクションで非常に低く設定すると、貧しい日にちょっと遅くなってしまうと、望ましくないタイムアウトが発生する可能性があることに注意してください。可能であれば、これをSQL Serverの外部で実行してください。pingが機能しない可能性がありますが、到達可能かどうかを確認するためにポート1433に接続することは、いくつかのツールで行うことができます。最も簡単に 'nmap'(ネットワーク管理者がその非常に言及してヒシッヒフィット)。 –

答えて

0

変更し、あなたのリンクサーバーの接続タイムアウトプロパティ。 リンクサーバーに接続するための秒で

Linked Server Properties (Server Options Page)

接続タイムアウト

タイムアウト値。 0の場合、sp_configure defaultremoteクエリのタイムアウト オプションの値を使用します。

enter image description here

0

それはより速く実行でき、以下を試してみてください。 4つの部分クエリの代わりにパススルーにステートメントを変換すると、速く実行されると思います。 また、データベースとテーブル名を削除することもできます。必要なのはサーバーとの接続だけです。

SELECT * FROM OPENQUERY ([LINK-RC], 'SELECT 1') 
+0

これを試してみましたが、残念ながら私のシステムではそれほど速くはなかったようです。 – aggaton

関連する問題