- PR -

System.Data.SqlClient.SqlException

1
投稿者投稿内容
reo
常連さん
会議室デビュー日: 2004/10/05
投稿数: 43
投稿日時: 2006-08-07 18:52
皆様よろしくお願い致します。

.NETでSqlServer2000のDBデータを検索して、表示するWEBアプリを作成しました。
問題となっているのは、ある検索条件下で
”タイムアウトに達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。”とメッセージが表示され検索できない状況になってしまいます。
検索対象の件数は約8万件です。その他の検索条件では問題なく検索結果が表示されます。
なにが原因なのかヒントはありますでしょうか?
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2006-08-07 19:00
さかもとと申します。

>その他の検索条件では問題なく検索結果が表示されます

ということであれば、単にSQL文に間違いがあるとか、コストがかかり過ぎている
とかではないでしょうか?(純粋にタイムアウト)

クエリアナライザで該当のSQLを実行してみたらよいかと思います。

reo
常連さん
会議室デビュー日: 2004/10/05
投稿数: 43
投稿日時: 2006-08-07 19:03
>ということであれば、単にSQL文に間違いがあるとか、コストがかかり過ぎている
>とかではないでしょうか?(純粋にタイムアウト)

>クエリアナライザで該当のSQLを実行してみたらよいかと思います。

→クエリアナライザで実行しましたが、40秒ほどで問題なく結果が返ってきます。
40秒ってのが異常なのでしょうか?
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2006-08-07 19:32
NAL-6295です。

SqlCommand.CommandTimeout プロパティ
http://msdn2.microsoft.com/ja-JP/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx

規定値は30秒です。

R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-08-07 19:33
引用:

reoさんの書き込み (2006-08-07 19:03) より:

40秒ってのが異常なのでしょうか?


40秒は長いほうだと思います。
とりあえず、同じ SQL で条件を絞って短くさせてみたらどうでしょう?
通ればタイムアウトが原因ですよね。

[ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-08-07 19:34 ]
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2006-08-07 19:35
さかもとです。

40秒ですか、タイムアウトまでの時間は変更が可能です。(すいません、今手元に
環境が無いのでどこかと言えないのですが)

でも40秒というのはちょっとかかりすぎではないかと思います。
もう少し条件を絞る(8万件も一度に検索が必要かどうか)とか
仕様を見直さないと、仮に結果が戻るまで40秒かかる画面が
あれば私は使わないかと・・・。

と書いている間にぬしの方々よりのご返答が・・・。

[ メッセージ編集済み 編集者: さかもと 編集日時 2006-08-07 19:36 ]
reo
常連さん
会議室デビュー日: 2004/10/05
投稿数: 43
投稿日時: 2006-08-08 11:12
皆様ありがとうございます。

皆様の御意見、ごもっともで、、、
当初は検索結果に件数制限をかけようかと思っておりましたが、業務都合上、数万件の照会も可能にしております。

>SqlCommand.CommandTimeout プロパティ
>http://msdn2.microsoft.com/ja-
>JP/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx
>規定値は30秒です。
↑の規定値を変更することで、現象は回避致しました。

みなさま貴重な御意見ありがとうございました。



1

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