|
分類:[.NET 全般]
よろしくお願い致します。 (VB.NET 2005 SQLServer 2005 std)
以下のようなタイムアウトエラーが発生し、原因が分からず対応に困っています。 どなたかご教授お願い致します。
CLRを使用したバッチ処理を実行しようとしています。 処理の一つで100万件データのINSERTをしようとして「タイムアウトに達しました」と エラーになります。(errno 5) INSERT文は「INSERT INTO (項目名) from (Aテーブル) Select CASE field1 WHEN '' THEN '0' ELSE field1 END field1 from (Bテーブル) 」 という形式です。 ※全項目にcaseで判定処理をいれています。 INSERTしたいAテーブル,Bテーブルともに項目数は30個くらいです。 sqlcommandを使ってクエリを実行しようとしているのですが sqlcommandのTimepoutを0にしてみたのですが、INISERT文を実行する処理でタイムアウトします。 処理が走って3〜4分でタイムアウトエラーが発生しています。 ロジックを確認していると、INSERT文を発行するの前のジョブで接続を切断していない箇所がいくつかみられたので 試しにINSERT文の前でsqlconnection.ClearAllコマンドを発行してみたのですが やはりエラーになります。
何故タイムアウトになるのかわからず苦慮しております。 様々なネット上の文献を確認したのですが なかなか納得できない状態です。 Aテーブルにはキーが4つ設定してあり、外さない方法を考えたいと思っています。 大変困っています、どなたか似たような経験をされた方が居たらヒントをいただきたく。 よろしくお願いします。
|