2

リンクサーバーの場合、「リモートクエリタイムアウト」構成を変更して、リンクサーバーへの呼び出しが特定のタイムアウト値内で完了するかロールバックする必要があることを示唆する方法がわかります。これは SQL Server エンジン全体で機能するようです。ストアド プロシージャ内のヒントを変更して、必要に応じて特定のストアド プロシージャをより長く実行できるようにすることはできますか? ?

リンクされたクエリのタイムアウトについては、 http ://support.microsoft.com/kb/314530 で説明しています。

3 秒でタイムアウトするように設定するコード例は次のとおりです。

sp_configure 'remote query timeout', 3       
go 
reconfigure with override 
go
4

1 に答える 1

5

ストアド プロシージャ内で変更することはあまりお勧めできません。 で変更するとremote query timeoutグローバル サーバー設定sp_configureになるため、ストアド プロシージャで変更すると、サーバー上のすべてのリンク サーバーのすべてのリモート クエリに影響します。

さらに、実行sp_configureにはALTER SETTINGSサーバーのアクセス許可が必要です。これは通常、sysadminとだけserveradminです。これらのアクセス許可をデータ アクセス アカウントに付与すると、コマンドによってサーバーがダウンする可能性があるため、セキュリティ上の懸念がありsp_configureます。

私が提案するのは、この 1 つのストアド プロシージャだけで使用する別の名前の 2 つ目のリンク サーバーを作成することです。SSMS では、個々のリンク サーバーごとにクエリ タイムアウトを構成できます。2 番目のリンク サーバーを追加すると、異なるリンク サーバー クライアント設定で同じサーバーにクエリを実行できるようになります。プレーンな SQL Server リンク サーバーを使用している場合は、これを行うために DNS CNAME を作成する必要がある場合があります。

于 2012-12-20T03:45:43.673 に答える