質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Q&A

解決済

1回答

1367閲覧

排他制御 ロックモード

Alice0225

総合スコア206

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

0グッド

0クリップ

投稿2018/06/14 02:16

排他制御の「ロックモード」に関して以下2点の詳細な動作が不明である為、ネットで調査しましたが聞いたことのない単語ばかりで内容が思うように読み取れませんでした。

以下2点のロックモードについて、どのような動作となるのでしょうか。

Sch-S(スキーマ安定度)
→テーブルのスキーマに依存する操作を行う時のロック。トランザクションのロック要求をブロックはしない

IX(インテント排他ロック)
→下位のLockTypeに位置する全てのリソースに対し、他からの排他ロック要求から保護する

自身でも引き続き上記のロック仕様を分からない単語を含めて勉強致しますが、内容についてもしご説明頂ける方がいらっしゃいましたらご教授頂けますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ロック モードの説明を引用します。

Sch-Sは実データには直接関係のないロックです。

データベース エンジンは、クエリをコンパイルして実行する際にスキーマ安定度 (Sch-S) ロックを使用します。Sch-S ロックは、排他 (X) ロックを含めて、どのトランザクション ロックもブロックしません。したがって、その他のトランザクション (テーブルを X ロックするトランザクションなど) は、クエリのコンパイル中も継続して実行されます。ただし、Sch-M ロックを取得する DDL 同時操作や DML 同時操作をテーブルに対して実行することはできません。

IXを含むインテントロックは共有ロック・更新ロック・排他ロックのロック階層におけるスーパーセットと言えます。
ロックの階層粒度を荒くして管理しているものと考えれば良いのではないでしょうか。

下位の階層に位置するリソースの (すべてではなく) 一部に対し、要求されているかかけられている排他ロックを保護します。IX は IS のスーパーセットです。また、下位のリソースに対する共有ロックの要求を保護します。

投稿2018/06/14 03:01

sazi

総合スコア25206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Alice0225

2018/06/14 04:16

ご回答頂きありがとうございます。 今回の件では、処理AでテーブルのIDの最大値を取得(SELECT)し、処理Bで同テーブルに処理Aで取得したIDに+1して登録、という流れで、同時に操作があった場合に排他制御が行われているのか、という調査を行なっておりました。 ご回答からすると、 ・Sch-S:排他制御されない ・IX:排他制御されない ということになりますでしょうか。
sazi

2018/06/14 04:28

そういったロックをどこでも掛けていないなら、当然制御は行われません。
Alice0225

2018/06/14 05:00

ご回答頂きありがとうございます。 やはり、明示的にTABLOCKX等を使わなければかからないのですね。 お忙しいところ度々の質問のご回答ありがとうございました。 自身でも解決出来るよう継続して勉強させていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問