- PR -

タイムアウト

投稿者投稿内容
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-10-01 21:12
引用:

えんぞ@見習さんの投稿(2004-10-01 15:44)より:
(ぼそっと...)ここまできたら、マシンのスペックも疑ってみるとか。。。


いや、2004-10-01 09:54分に、
引用:

strSQL = "複雑なSQLが入ります"


と有りますから、SELECT文のチューニングが先でしょう。あと、テーブル設計がどうなっているか、とか。
沙樹
会議室デビュー日: 2003/06/04
投稿数: 4
お住まい・勤務地: 東京都
投稿日時: 2004-10-02 00:17
はじめまして。

他の方も言われている通り、SQL文の見直しとかは必要かと思いますが、
うちでも似た現象が起きまして、ご参考までに、と思い、書き込ませて頂きます。

そのときの原因は、ネットワークへの過負荷によるレスポンスの悪さでした。
 (社内ネットワークのトラフィックが非常に多くなっており、かつ、
  たまたまサーバーへ接続に行く回線中に10baseのHUBも紛れ込んでいた)
 ネットワーク環境の整備中であったため、HUB関係は、その関係者にまかせ
 とりあえず、
  SQLServerでクエリータイムアウトをしないよう設定
  ネットワークになるべく負荷をかけないよう設計し直し
  SQL文のチューニングもおこない
 開発を続けました。

うちのようにネットワーク環境がめちゃくちゃということはないかと思いますが、
ネットワークの負荷も確認されるとよいかもしれません。

初投稿なので、緊張してヘンな文章になっている気がしますが、お許しください。
taki
常連さん
会議室デビュー日: 2003/09/16
投稿数: 45
投稿日時: 2004-10-02 13:02
Jitta さんへ
ありがとうございます。
ただ今SQLのチューニング中です。。数回にわけてデータを取得することによりできそうな状態になってきました。

沙樹 さんへ
ご返答ありがとうございます。
ネットワークの状況は、DBサーバーには常に更新処理が動いています。CPUが常に使用されています。負荷がかかっているというのも考えられるのでしょうか。。
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-10-04 20:20
横から入って質問させてください。
C#.NETでWeb開発しております。
わたしもSQL実行時のタイムアウトで悩んだ時期がありました。

質問なのですが、レス中にWeb.configでタイムアウトを設定とありましたが、
Web.configでのタイムアウトはセッションであって、
SQL文実行時のタイムアウトとは別だと思っているのですが間違いでしょうか?
私の場合、machine.configの
httpRuntime executionTimeout="90"
にて設定を変更するものだと思っています。
しかし、ここで設定してしまうと同一サーバでの他アプリに支障がないか心配ですが。。。

SQL実行時のタイムアウトはどこで設定するのが望ましいのでしょうか?
(見当違いの発言でしたら済みません)
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-10-04 20:34
引用:

BB.NKさんの書き込み (2004-10-04 20:20) より:


 SQLのタイムアウトは、どういうタイミングで発生すると思いますか?SQL文が投げられてから、最初の1レコードが返ってくるまで、なんです。たとえ結果が10万件あろうと、1件目が返ってくれば、全部の取得に何時間かけようと、別の問題にはなりますが、タイムアウトにはならないのです。私は、その最初の1件目が返ってくるまでにデフォルト設定でタイムアウトしてしまうような問い合わせ文に問題があると思います。
 Oracleでいうところの実行計画は、SQL Serverではとれないのでしょうか。インデックスの作り方や、問い合わせでの件数の絞り込みを工夫して回避すべき、と思います。
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-10-06 08:53
jittaさま

いつもお世話になります。
私はSQLで回避しました。
(原因は簡単で、文字列と数値比較の差でしたが。。。)

それで、私の質問が悪かったようです。
質問の内容は、
「もし問合せに対するタイムアウトを変更する場合、
どこで設定変更するのでしょうか?」
です。
Web.configではなくて、machine.configでは?という内容です。

それとも、タイムアウト時間が変更すべきではないということでしょうか?

宜しくお願い致します。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-10-06 11:50
引用:

BB.NKさんの書き込み (2004-10-06 08:53) より:
jittaさま

いつもお世話になります。
私はSQLで回避しました。
(原因は簡単で、文字列と数値比較の差でしたが。。。)

それで、私の質問が悪かったようです。
質問の内容は、
「もし問合せに対するタイムアウトを変更する場合、
どこで設定変更するのでしょうか?」
です。
Web.configではなくて、machine.configでは?という内容です。

それとも、タイムアウト時間が変更すべきではないということでしょうか?

宜しくお願い致します。



Web.configうんぬんって書いたのは僕だと思うので、返答を・・・。

単純に、動的プロパティの関係で接続文字列をweb.configに持っていたので、
接続文字列中のタイムアウト値を調整すれば?という意味でした。
その背景を記述し忘れていました。
_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-10-06 20:50
引用:

BB.NKさんの書き込み (2004-10-06 08:53) より:

質問の内容は、
「もし問合せに対するタイムアウトを変更する場合、
どこで設定変更するのでしょうか?」
です。
Web.configではなくて、machine.configでは?という内容です。


 <httpRuntime>要素は、コンピュータ、サイト、アプリケーション、サブディレクトリで構成できます。machine.configにあるものは、アプリケーションのweb.configで上書きできる、ということです。したがって、コンピュータそのもののデフォルト設定を書き換えるmachine.configではなく、アプリケーションに影響するアプリケーションのコンフィグファイル、またはWebアプリケーションの特定のページでのみ必要ならそのページが存在するディレクトリのweb.configで設定するべきだと思います。

参照:VS.NET2003環境
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpgenref/html/gngrfHttpRuntimeSection.htm

 さて、言葉足らずを追加させてください。
 私は「デフォルト値」というのは、適当に決められているのではないと思っています。何らかの必然があって決められており、また、そのように決めるべきだと思います。その為、『デフォルト設定でタイムアウトしてしまうような問い合わせ文に問題がある』と思いました。


[ メッセージ編集済み 編集者: Jitta 編集日時 2004-10-06 20:51 ]

スキルアップ/キャリアアップ(JOB@IT)