0

SQL Server データベースに対して SQL コードを実行すると、次の ODBC タイムアウト エラーが発生します。

「接続エラー: [Microsoft][ODBC SQL Server Driver]タイムアウトが発生しました」「S1T00」

ここで紛らわしいのは、タイムアウトが発生したときに実行されている SQL コードが非常に単純であるとスタック ダンプが示していることです。

@@TRANCOUNT を TranCount として選択

または時々...

取引開始

私たちのクライアントは、これらのエラーが発生したときのデータベース サーバーの負荷は圧倒的ではないと言っています。これらの単純なステートメントがタイムアウトになる原因は何ですか? タイムアウト設定はかなり短い (1 ~ 5 秒) と思いますが、SELECT @@TRANCOUNT は瞬時に実行されるはずです。

何か案は?

4

1 に答える 1

2

ドライバ依存かもしれませんが、ODBC タイムアウトはクライアント側で処理されているのではないかと思います。これは、ウイルス スキャナーからその他のプロセスまで、ネットワークの遅延やわずかなサーバーの一時停止が原因で、1 秒または 2 秒の遅延が発生する可能性があることを意味します。したがって、タイムアウトが実際に 1 秒である場合、タイムアウト エラーが発生する可能性があります。

妥当なタイムアウトとしては、5 秒でも少し短めのようです。これは、クライアントとサーバーが同じ物理マシン上にないことを前提としています。

于 2010-06-03T23:14:37.813 に答える