web-dev-qa-db-ja.com

タイムアウトの期限切れの問題を解決する方法は?

SQL Server2005およびVB6の使用

年次データまたは3か月以上のデータを実行すると、「TimeoutExpired」エラーが表示されます。完全には実行されていません。

私の接続文字列

ConnectionString = "Provider=SQLOLEDB.1;" & _
    "Persist Security Info=False; " & _
    "User ID=" & Settings.SQL_Username & _
    "; Password = " & Settings.SQL_Password & "; " & _
    "Initial Catalog=" & Settings.SQL_DatabaseName & ";" & _
    "Data Source=" & Settings.SQL_ServerAddress

この問題を解決するにはどうすればよいですか?

Plz .. ..

11
Gopal

「黒いブードゥーの魔法」はありません。クエリを高速化する(データの返送を減らし、データベースデザインを改善し、クエリの実行を高速化するインデックスを見つけて適用する)か、クエリを許可するタイムアウトを増やすことができます。タイムアウトがスローされる前に実行します。

これらはあなたの2つのオプションです-あなたの選択をしてください。

更新:少しグーグルすると明らかになります:

Dim cmd
Set cmd = Server.CreateObject("ADODB.Command")
cmd.CommandTimeout = 120   ' number of seconds

マーク

17
marc_s

コマンドに.CommandTimeoutを設定する必要があります。接続文字列で設定すると動作しません。

3
Dinah

大量のデータをプルバックしようとしていて、SQLServerがそのデータをプルバックするのにデフォルトのADOタイムアウト(30秒または40秒?))よりも多くかかっていると思います。

または、実際には多くのデータではありませんが、テーブルに適切なインデックスがありません。そのため、クエリに対してインデックスを確認します(実行プランはここでの友達です)。

またはそれは両方の組み合わせです。

SQL Management Studioで直接クエリを実行した場合、クエリにはどのくらい時間がかかりますか?

1
Chris J

明らかに、あなたはたくさんのデータを持ち出そうとしていて、あなたのデータベースはこれをするのに多くの時間を費やしています。接続文字列を投稿して、接続タイムアウトを増やすことができるように変更するパラメータを教えてください。

または、アプリの最適化を試みることもできます。データが表示されるまでに時間がかかるはずです。

0
hminaya