none
SQLServer 2000 でのタイムアウトの発生場所の特定 RRS feed

  • 質問

  • あるCRM製品(winアプリ系)のカスタマイズ(web上からも管理出来るように、webサーバからストアドを呼び出しております。)をしており、そこでVB.NETを利用してSQLServer2000に対してSQL文を発行した時に「Index #0,Message: 時間切れになりました。,Native: 0,Source: Microsoft OLE DB Provider for SQL Server,SQL: HYT00」とタイムアウトエラーが発生してしまいます。
    この現象は常に発生するものではなく、ごくまれに発生している状況です。 

    自分なりにいろいろ調べてみると、タイムアウトは5分(おそらくですが、、)に設定されていたのでプロファイラから「SQLProfilerTSQL_Duration」テンプレートを使用して、30秒以上かかったSQLを表示するように設定しておりましたが怪しいSQLは出力されておりませんでした。

    唯一怪しいと感じる所が問題の起きる前に100件以上のinsert文を一時テーブルに対して行っており、enterprise manager⇒利用状況⇒ロック状況で見るとタイムアウトが発生している物理データベースに対してinsert分が共有ロックをかけておりました。

    本来であれば、そういったエラーが発生した場合に独自のログを出力させるべきかと思いますが、急いで作ったのかログ出力の処理はなく、前任者は全員退職しておりますので、かなり混乱している状態です。

    最悪、タイムアウトの時間を延ばすことを考えておりますが、可能であれば、問題の発生場所を特定し、改善したいと考えております。

    原因を特定する方法をご教授頂けないでしょうか。
    何卒よろしくお願い致します。 

     

    2011年10月24日 5:20

回答

  • その状況ですとハードウエアの可能性もあると思います。全く同じSQL文を定期的にクライアントから投げる動作で、稀にタイムアウトが発生することを経験したことがあります。サーバーの負荷も疑ったのですが、それも考えにくく、物理的なネットワークが怪しいということになり、ハブを交換したら見事に収まりました。ハブもポート単位でおかしくなりますので、ポートを変えただけで改善したこともあります。もし、ハードウエアの調査を対象から外されているのでしたら、LAN線なども含めて調査されてみてはいかがでしょうか? SQL Server 2000ということですので、ハードウエアを長年使用している場合、ハードウエアの劣化も十分にあり得ると思います。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 編集済み trapemiya 2011年10月25日 0:46 追記
    • 回答の候補に設定 山本春海 2011年11月2日 8:31
    • 回答としてマーク 山本春海 2011年11月10日 8:58
    2011年10月25日 0:45

すべての返信

  • その状況ですとハードウエアの可能性もあると思います。全く同じSQL文を定期的にクライアントから投げる動作で、稀にタイムアウトが発生することを経験したことがあります。サーバーの負荷も疑ったのですが、それも考えにくく、物理的なネットワークが怪しいということになり、ハブを交換したら見事に収まりました。ハブもポート単位でおかしくなりますので、ポートを変えただけで改善したこともあります。もし、ハードウエアの調査を対象から外されているのでしたら、LAN線なども含めて調査されてみてはいかがでしょうか? SQL Server 2000ということですので、ハードウエアを長年使用している場合、ハードウエアの劣化も十分にあり得ると思います。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 編集済み trapemiya 2011年10月25日 0:46 追記
    • 回答の候補に設定 山本春海 2011年11月2日 8:31
    • 回答としてマーク 山本春海 2011年11月10日 8:58
    2011年10月25日 0:45
  • trapemiya様

    ご教授誠にありがとうございました。
    また、ご連絡が遅れまして申し訳ございませんでした。

    ハードウェアの問題。確かにそれはありそうですね。一度pingを打ち続け監視するプログラムを作成して様子を見てみます。

    また、何かあればご相談させてください。

    ありがとうございました。

     

     

    2011年11月1日 1:09