- - PR -
System.Data.SqlClient.SqlException
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-08-07 18:52
皆様よろしくお願い致します。
.NETでSqlServer2000のDBデータを検索して、表示するWEBアプリを作成しました。 問題となっているのは、ある検索条件下で ”タイムアウトに達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。”とメッセージが表示され検索できない状況になってしまいます。 検索対象の件数は約8万件です。その他の検索条件では問題なく検索結果が表示されます。 なにが原因なのかヒントはありますでしょうか? | ||||
|
投稿日時: 2006-08-07 19:00
さかもとと申します。
>その他の検索条件では問題なく検索結果が表示されます ということであれば、単にSQL文に間違いがあるとか、コストがかかり過ぎている とかではないでしょうか?(純粋にタイムアウト) クエリアナライザで該当のSQLを実行してみたらよいかと思います。 | ||||
|
投稿日時: 2006-08-07 19:03
>ということであれば、単にSQL文に間違いがあるとか、コストがかかり過ぎている
>とかではないでしょうか?(純粋にタイムアウト) >クエリアナライザで該当のSQLを実行してみたらよいかと思います。 →クエリアナライザで実行しましたが、40秒ほどで問題なく結果が返ってきます。 40秒ってのが異常なのでしょうか? | ||||
|
投稿日時: 2006-08-07 19:32
NAL-6295です。
SqlCommand.CommandTimeout プロパティ http://msdn2.microsoft.com/ja-JP/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx 規定値は30秒です。 | ||||
|
投稿日時: 2006-08-07 19:33
40秒は長いほうだと思います。 とりあえず、同じ SQL で条件を絞って短くさせてみたらどうでしょう? 通ればタイムアウトが原因ですよね。 [ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-08-07 19:34 ] | ||||
|
投稿日時: 2006-08-07 19:35
さかもとです。
40秒ですか、タイムアウトまでの時間は変更が可能です。(すいません、今手元に 環境が無いのでどこかと言えないのですが) でも40秒というのはちょっとかかりすぎではないかと思います。 もう少し条件を絞る(8万件も一度に検索が必要かどうか)とか 仕様を見直さないと、仮に結果が戻るまで40秒かかる画面が あれば私は使わないかと・・・。 と書いている間にぬしの方々よりのご返答が・・・。 [ メッセージ編集済み 編集者: さかもと 編集日時 2006-08-07 19:36 ] | ||||
|
投稿日時: 2006-08-08 11:12
皆様ありがとうございます。
皆様の御意見、ごもっともで、、、 当初は検索結果に件数制限をかけようかと思っておりましたが、業務都合上、数万件の照会も可能にしております。 >SqlCommand.CommandTimeout プロパティ >http://msdn2.microsoft.com/ja- >JP/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx >規定値は30秒です。 ↑の規定値を変更することで、現象は回避致しました。 みなさま貴重な御意見ありがとうございました。 |
1