- PR -

SELECT文でデッドロック

1
投稿者投稿内容
がちゃぴん
会議室デビュー日: 2007/01/17
投稿数: 11
投稿日時: 2007-05-08 17:26
SQL初心者です。

現在、SQLServer2000を使用しております。
デッドロックが発生したため、プロファイラにて監視を行ったところ、
SELECT文と、カーソルのフェッチ部分でデッドロックが発生したように
思われます。

このような場合でも、デッドロックは発生するのでしょうか?
情報不足で申し訳ありません。

また、他にデッドロック発生時、原因を追究する方法を知っている方
教えてください。よろしくお願い致します。

DBに詳しい方、お願いいたします。
サトウ
会議室デビュー日: 2006/01/17
投稿数: 17
投稿日時: 2007-05-09 11:20
SELECT文で共有ロックが行われますが、
共有ロックだけでは、デッドロックは発生しないと思います。

UPDATEやDELETEを実行し、排他ロックを取得したまま、
SELECT文を実行しているとかだと考えられますが・・・。

デッドロックの発生メカニズムは、この辺りが参考になると思います。
http://msdn2.microsoft.com/ja-jp/library/ms177433.aspx

また、ロックについては、この辺りを参照してください。
http://www.microsoft.com/japan/sql/ssj/tips/02.mspx

引用:

また、他にデッドロック発生時、原因を追究する方法を知っている方
教えてください。よろしくお願い致します。



デッドロックが発生するということは、
少なくとも2つのトランザクションが動いているはずです。
原因の追究は、その2つのトランザクションの
処理内容を良く見る しかないかと。



1

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