- PR -

SQLServer2005でInsert時にタイムアウト

1
投稿者投稿内容
mso
会議室デビュー日: 2008/03/27
投稿数: 4
投稿日時: 2008-08-26 10:24
SQLServerで悩んでいます。

夜間のバッチ処理でINSERTを実行しているときに、
「タイムアウトに達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。
ステートメントは終了されました。」

とエラーが返されます。
SELECTはできるのでDB接続のプログラムがおかしいというわけではないと思います。
何度実行しても同じところでエラーが発生します。

実行しているSQLは
INSERT INTO TABLE_A(aaa,bbb,ccc) values('aaa','bbb','ccc')
というように1行ずつのINSERTです。

自分の考えでは、TABLEがロックされていない限りはINSERTのタイムアウトは
発生しないと考えていますが、どこでロックされているかわかりません。
SQLプロファイラーなどでロックされているところを探すことは出来ますでしょうか?



開発環境:
SQL Server2005
Visual Studio2005(C#)
もん吉
常連さん
会議室デビュー日: 2008/05/16
投稿数: 36
投稿日時: 2008-08-26 13:26
ロック状況はストアドプロシージャで確認できます。
http://uchukamen.com/SQL2005/Lock/Lock.htm

ロックされていればSELECTすらできないと思ってますが違うのかな?
あと、同じINSERT文を他から実行してもエラーになるんでしょうか?
mso
会議室デビュー日: 2008/03/27
投稿数: 4
投稿日時: 2008-08-26 13:32
引用:

もん吉さんの書き込み (2008-08-26 13:26) より:
ロック状況はストアドプロシージャで確認できます。
http://uchukamen.com/SQL2005/Lock/Lock.htm

ロックされていればSELECTすらできないと思ってますが違うのかな?
あと、同じINSERT文を他から実行してもエラーになるんでしょうか?





情報ありがとうございます。
ロックについては調べてみます。

ロックされていたらSELECTも出来ないような気がしています。
気がつきませんでした。

ちなみにINSERT処理は同じ処理が出来るときと出来ないときがあります。
何が原因で出来ないのかはっきりとはわかりませんが、
今はロックが原因ではないか?と仮説をつけてやっています。
1

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