ロックの互換性
1 つのトランザクションによってロックされているリソースに、別のトランザクションでアクセスする必要がある場合、Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) では最初のトランザクションで使用されているロック モードの互換性に基づいて、2 つ目のトランザクションのロックを許可するかどうかが判断されます。
既にロックされているリソースには、互換性のある種類のロックのみを適用できます。たとえば、排他 (X) ロックが適用されている間は、最初のトランザクションの終了時にその X ロックが解除されるまで、他のトランザクションはそのリソースで共有、更新または排他ロックを取得できません。一方、共有 (S) ロックがリソースに適用されている場合は、最初のトランザクションが完了していなくても、他のトランザクションもその項目の共有ロックまたは更新 (U) ロックを取得できます。ただし、共有ロックが解除されるまでは、他のトランザクションは排他ロックを取得できません。
リソース ロック モードには、同じリソースで取得された他のロックと互換性のあるロックを示す互換性マトリックスがあります。このマトリックスでは、ロックの強度が増加する順番に一覧されます。
次の表に、要求されたロック モードと既存のロック モードとの互換性を示します。
要求されたモード | IS | S | U | IX | SIX | X |
---|---|---|---|---|---|---|
インテント共有 (IS) |
○ |
○ |
○ |
○ |
○ |
× |
共有 (S) |
○ |
○ |
○ |
× |
× |
× |
更新 (U) |
○ |
○ |
× |
× |
× |
× |
インテント排他 (IX) |
○ |
× |
× |
○ |
× |
× |
インテント排他付き共有 (SIX) |
○ |
× |
× |
× |
× |
× |
排他 (X) |
× |
× |
× |
× |
× |
× |
メモ : |
---|
IX は、すべての行ではなく、一部の行のみの更新する意図を示すものなので、IX ロックは IX ロック モードと互換性があります。一部の行の読み取りや更新を行う他のトランザクションも、同じ行を更新しないという条件で許可されます。 |
ロック互換性マトリックス
SQL Server Compact Edition では、次の範囲のロックがサポートされています。
- Sch-S、Sch-X、S、U、X、IS、IU、IX、SIU、SIX、UIX
メモ : |
---|
スキーマ安定性 (Sch-S) ロックは、スキーマ変更 (Sch-M) ロック モードを除くすべてのロック モードと互換性があります。Sch-M ロックは、どのロック モードとも互換性がありません。 |
ロック互換性のマトリックスについては、SQL Server Books Online を参照してください。
参照
概念
ロックについて
ロックに関する情報の表示
ロックのカスタマイズ