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 .. ..
「黒いブードゥーの魔法」はありません。クエリを高速化する(データの返送を減らし、データベースデザインを改善し、クエリの実行を高速化するインデックスを見つけて適用する)か、クエリを許可するタイムアウトを増やすことができます。タイムアウトがスローされる前に実行します。
これらはあなたの2つのオプションです-あなたの選択をしてください。
更新:少しグーグルすると明らかになります:
Dim cmd
Set cmd = Server.CreateObject("ADODB.Command")
cmd.CommandTimeout = 120 ' number of seconds
マーク
コマンドに.CommandTimeout
を設定する必要があります。接続文字列で設定すると動作しません。
大量のデータをプルバックしようとしていて、SQLServerがそのデータをプルバックするのにデフォルトのADOタイムアウト(30秒または40秒?))よりも多くかかっていると思います。
または、実際には多くのデータではありませんが、テーブルに適切なインデックスがありません。そのため、クエリに対してインデックスを確認します(実行プランはここでの友達です)。
またはそれは両方の組み合わせです。
SQL Management Studioで直接クエリを実行した場合、クエリにはどのくらい時間がかかりますか?
明らかに、あなたはたくさんのデータを持ち出そうとしていて、あなたのデータベースはこれをするのに多くの時間を費やしています。接続文字列を投稿して、接続タイムアウトを増やすことができるように変更するパラメータを教えてください。
または、アプリの最適化を試みることもできます。データが表示されるまでに時間がかかるはずです。