2017-06-20 392 views
0

リンクサーバー経由で開くためにopenqueryを使用するストアドプロシージャでエラーが頻繁に発生します。SQL Serverリンクサーバーのリソース制限

リンクサーバー "BrackleyICS"のOLE DBプロバイダー "SQLNCLI11" がエラーを報告しました。 リソース制限に達したため、プロバイダによって実行が終了しました。

これは通常10.01分に発生します。これはタイムアウトの設定を意味しますが、他の機会には35分かけて正常に実行されます。

誰かがこれに遭遇しましたか?

+0

で詳細情報やその他の時間がない、これが役立つことがあります。https://support.microsoft.com/en-ie/help/314530/error-message-when-実行-a-linked-server-query-in-sql-server-timeout-expired – PawelCz

+0

上記のリンクから取得します。既定では、Microsoft SQL Server 7.0では、タイムアウトの設定は0(無限の待機)です。既定では、SQL Server 2000とSQL Server 2005では、タイムアウト設定は600(10分)です。 – PawelCz

答えて

1

あなたがであなたの現在のタイムアウト設定を確認することができます。

クエリタイムアウト

右クリックサーバー]> [プロパティ]> [接続]> [リモートクエリタイムアウト

ログインタイムアウト

右クリックしてください版> [プロパティ]> [詳細]> [リモートログインTIMOUT

私は必要な1

sp_configure 'remote login timeout', 30 
go 
reconfigure with override 
go 

理由に30秒からの変化値を、ログインタイムアウトは10分に設定されている、あなたはスクリプトの下に実行することでこれを増やす必要があると思います毎回タイムアウトが発生しない理由: ユーザーIDがサーバーにログオンしていてもタイムアウトが発生しない場合は、わかりません。

+0

私はこれと何か関係があったと思っていました。 したがって、サーバーAはサーバーBにOpenQueryを使用して接続しますが、タイムアウトすることがあります。サーバーAもOpenQueryを使用してサーバーCに接続しますが、これは決してタイムアウトしませんが、時間がかかります。 – Jay1b

+0

@ Jay1b、サーバーBの設定とサーバーCの設定を比較してください。多少の違いがあるかもしれません – PawelCz

+0

これに影響する可能性のある明白な設定の違いはありません。言うまでもなく、SQL Serverは非常に膨大なので、すべての設定が同じであるとは言えません。このタイムアウトを600から300に変更すると、予想通りに5分でタイムアウトすることになります。私はこのセットを1時間(3600)に数回試行していますが、時にはうまくいっていたときに成功を確認するのが難しくなりました。 – Jay1b

0

リンクサーバーには、リンクサーバー - >プロパティ - >サーバーオプションの独自のクエリタイムアウト設定もあります。デフォルト値である0に設定されている可能性があります。

この場合、Query Wait拡張サーバー設定が使用されています。この設定は、-1(デフォルト)に設定されています。

この場合、タイムアウトはクエリごとに決定され、推定クエリコストの25倍として計算されます。

たぶんタイムアウト一度ログインMSDN

関連する問題