MSDE FunClub
Microsoft Data Engine FunClub
MSDE技術者向けメーリングリスト過去ログ[828]番
 
[TOP]>[MSDE技術者向けメーリングリスト過去ログ(828番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
Re: ロックの動作(長文)

Date: Tue, 30 Oct 2001 22:08:44 +0900
From: 新田 則之  <who@sub.example.jp>


新田です。

谷さん、大変詳細な調査をして頂き、本当にありがとうございます。


Kenji Tani wrote:

> > select * from authors with (TABLOCK, UPDLOCK)
> > ----
> > Process 54 acquiring S lock on TAB: 5:1977058079 []
> >                  (class bit0 ref1) result: OK
> > Process 54 acquiring X lock on TAB: 5:1977058079 []
> >                  (class bit2000000 ref1) result: OK
> >
> > 上記の2行(改行で4行)が、クエリ終了後だと思われます。
>
> ちなみに、コミットはしていません。
> コミットした場合は、現れませんでした。
> # X lock Release を期待していたのですけどねぇ。
>
> トレースフラグが違うのかな?
> # フラグの詳しい情報教えて欲しい!

勉強不足で、「トレースフラグ」の結果の意味を
今のところ詳しく把握できていません。
(せっかく調べて頂いたのにスミマセン…)
これから「トレースフラグ」について勉強します。


ところで、1つまえの投稿で

> 故に、SELECT 文が処理されている間なら、
> 別のセッションのSELECT文の処理が行えるかもしれないですね。

と言われていましたが、これは

  「トランザクション開始後にSELECT文を処理した場合
   そのトランザクションが終了するまでは
   別セッションのSELECT文の処理が行えるかもしれない」

という意味で捉えてもよろしいでしょうか?

参考になるかどうかわかりませんが、実は今回の現象は

  1、コネクションA でトランザクション開始
  2、コネクションA で select * from [テーブル名] with (TABLOCK, UPDLOCK) を実行
  3、2の処理が完了したことを確認(1のトランザクションはまだ生きている状態)
  4、コネクションB で select * from [テーブル名] with (TABLOCK) を実行

という処理の順序で実施した場合
結局、最後の「4」の処理がロック解除待ちの状態になってしまうのです。

最終的な目標は、上記の4の処理を無事完了させることなのですが…



[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。