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

 
Re: MSDE2000でロックヒント (UPDLOCK)時に他セッションでデータを読込めない

Date: Tue, 30 Oct 2001 17:23:01 +0900
From: Kenji Tani <who@example.co.jp>


From:          新田 則之  <who@sub.example.jp>
Date:           Tue, 30 Oct 2001 13:22:28 +0900
Message-ID: who@sub.example.jp
Subject:        MSDE2000 でロックヒント (UPDLOCK) 時に他セッションで
                    データを読込めない

谷です。
回答ではございませんが、興味を持ったので、テストをしました。
# というか、わかりませんでした。

 Windows 2000 Advanced ServerSP2上で
> MS00-092、MS01-032、MS01-041、の修正モジュールを適用して
サービスパックを適用した SQL Server 2000 でテストしました。

> コネクションAの中でトランザクションを発生させておき
>  select * from [テーブル名] with (TABLOCK, UPDLOCK)
> を発行した状態で

この状態で、なんと、排他ロックになっていました。
「UPDLOCK は、必要に応じて自動的に排他ロックに変換される」
というのが、Inside SQL Server 7.0 に記載されていました。
# 必要に応じてというところが怪しいですね。

> 別のコネクションBの中でトランザクションを発生させ
>   select * from [テーブル名] with (TABLOCK)
> を発行すると、ロック解除待ちの状態になってしまいます。

>   コネクションA … select * from [テーブル名] with (ROWLOCK, UPDLOCK)
>   コネクションB … select * from [テーブル名] with (ROWLOCK)
> だと、コネクションBのSelect文は無事実行されるので
> この場合はBooksOnline の記述通りの動きです。

SELECT * FROM [テーブル名] with (TABLOCK)
だとダメでした。
コネクションA で テーブルに対してインテント排他がかかっていました。
(キーに更新ロック、ページに IX ロック)

> どちらのトランザクションも
> 「SET TRANSACTION ISOLATION LEVEL」ステートメントで
>分離レベルを変更していないので
> 既定の「READ COMMITTED」の分離レベルで動作しているはずです。

「ロックヒントは、セッションの分離レベルを無効にする」
との記載が、Books Online にあります。




-- 
With best regards.

Kenji Tani
Otsuka Corp. Kansai Technical Solution Center
Phone: 06-6456-2640 Fax: 06-6456-2619
Email: who@example.co.jp



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


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

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

MSDE TOP ページに移動する

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