「タイムアウトの期限が切れました」というエラーが発生しているストアド プロシージャがあります。
関連するコードは ADO/VB6 です。
ストアド プロシージャ自体は問題ありません。クエリ ウィンドウで実行でき、1 秒もかかりません。
接続などを取得するために使用されるコードもモジュール化されており、巨大なアプリケーション全体で使用されています。1 つの特定のデータベースでタイムアウトが発生するのは、この 1 つの場所だけです。
エラーは、VB6 コードをデバッグで実行するかどうかに関係なく、何百回も試行するたびに再現可能であり、突然すべてが魔法のように再び機能し始めます。その後、しばらくすると同じ問題が再び発生します。
ここにどれだけのコードを記述すればよいかわかりませんが、複雑なことは何もありません。それは基本的にです。
Set adoCommandObject.ActiveConnection = ...{open ADODB.Connection object}
Set rs = CreateObject("ADODB.Recordset")
Call rs.Open(adoCommandObject, , adOpenForwardOnly, adLockReadOnly)'Timeout occurs here
私はプロファイラーで見てきましたが、sp の実行前後に "SET NO_BROWSETABLE ON" / "SET NO_BROWSETABLE OFF" ステートメントが発生することがあります。
私はネットを検索しましたが、これに関する満足のいくヘルプを見つけることができませんでした。この時点で、私は喜んで何でも試してみます (残念ながら、.NET での書き換えはオプションではありません!)