※ ChatGPTを利用し、要約された質問です(原文:ストアド実行時のタイムアウト)
ストアド実行時のタイムアウト
このQ&Aのポイント
ストアド実行時のタイムアウトの原因と解決方法について教えてください。
データ抽出クエリを高速化するためにストアドプロシージャを使用していますが、最近タイムアウトのエラーが発生しています。この問題の解決策を教えてください。
ビジネスアプリケーションでストアドプロシージャを使用してデータ抽出を行っていますが、タイムアウトの問題があります。どのようにして解決すればよいでしょうか?
SQL-Server2000,VB6
データ抽出クエリを高速化すべくストアドプロシージャをVBプログラムから起動しています。
以下抜粋
cmd.ActiveConnection = Conn
cmd.CommandText = sp_Shukei
cmd.CommandType = adCmdStoredProc
Set Rs = cmd.Execute
抽出基となるテーブルのレコード件数が大量になったせいなのか、最近以下のエラーが発生するようになりました。
-2147217871(80040e31)[microsoft ] [odbc sql server driver]時間切れになりました
いろいろ調べて、プログラムで
Conn.CommandTimeout = 0
としてもだめでした。
ストアド自体はReadOnlyですし、トランザクション排他待ちが起きている可能性はありません。
ですのでLOCK_TIMEOUTとは違うと思っています。
単にストアドに記述しているクエリの解釈か実行に時間が掛かっているものと思えるのです。
DB接続自体はこの処理前に何の問題もなく終わっています。
※実はエンドユーザ環境でのみ発生します。開発環境で同じデータ量で試しても再現しないのです。
エンドユーザのネットワークが遅いのも、ひとつの原因になっているものと思われます。
時間切れを起きなくするにはどうしたらよいのでしょうか?
どなたかご存知の方、教えてください。
お礼
回答ありがとうございます。 試してみます。