Symfoware(R) Server RDBユーザーズガイド 応用プログラム開発編 - FUJITSU -
目次 索引 前ページ次ページ

上へ第7章 応用プログラムとトランザクション処理

7.6 資源の競合が起きた場合の制御

資源の競合が起きた場合に、どのタイミングまで占有待ちとなるのかは、トランザクションモードの指定によって異なります。以下に、トランザクションモードの指定と資源の占有について示します。

[表:占有の単位が行の場合]

 

先行トランザクション

独立性水準

SERIALIZABLE

REPEATABLE READ

READ COMMITTED

READ UNCOMMITTED

SQL文の種類

SELECT

INSERT

UPDATE

DELETE

SELECT

INSERT

UPDATE

DELETE

SELECT

INSERT

UPDATE

DELETE

SELECT

INSERT

UPDATE

DELETE

後続トランザクション

独立性水準

SQL文
の種類

 

 

SERIALIZABLE

SELECT

 

×

×

×

×

×

×

×

×

×

×

×

×

INSERT

UPDATE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

DELETE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

REPEATABLE READ

SELECT

×

×

×

×

×

×

×

×

×

×

×

×

INSERT

UPDATE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

DELETE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

READ COMMITTED

SELECT

×

×

×

×

×

×

×

×

×

×

×

×

INSERT

UPDATE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

DELETE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

READ UNCOMMITTED

SELECT

×

×

×

INSERT

×

×

×

×

×

×

×

×

×

×

×

UPDATE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

DELETE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

○ : 待つことなく動作する

△ : 先行トランザクションのSQL文が以下のいずれかの場合は、先行トランザクションのSQL文の終了を待つ

先行トランザクションのSQL文が上記以外の場合は、トランザクションの終了を待つ

× : トランザクションの終了を待つ

[表:占有の単位がページの場合]

 

先行トランザクション

独立性水準

SERIALIZABLE

REPEATABLE READ

READ COMMITTED

READ UNCOMMITTED

SQL文の種類

SELECT

INSERT

UPDATE

DELETE

SELECT

INSERT

UPDATE

DELETE

SELECT

INSERT

UPDATE

DELETE

SELECT

INSERT

UPDATE

DELETE

後続トランザクション

独立性水準

SQL文の種類

 

 

SERIALIZABLE

SELECT

 

×

×

×

×

×

×

×

×

×

×

×

×

INSERT

×

×

×

×

×

×

×

×

×

×

×

×

×

×

UPDATE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

DELETE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

REPEATABLE READ

SELECT

×

×

×

×

×

×

×

×

×

×

×

×

INSERT

×

×

×

×

×

×

×

×

×

×

×

×

×

×

UPDATE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

DELETE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

READ COMMITTED

SELECT

×

×

×

×

×

×

×

×

×

×

×

×

INSERT

×

×

×

×

×

×

×

×

×

×

×

×

×

×

UPDATE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

DELETE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

READ UNCOMMITTED

SELECT

INSERT

UPDATE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

DELETE

×

×

×

×

×

×

×

×

×

×

×

×

×

×

○ : 待つことなく動作する

△ : 先行トランザクションのSQL文が以下のいずれかの場合は、先行トランザクションのSQL文の終了を待つ

先行トランザクションのSQL文が上記以外の場合は、トランザクションの終了を待つ

× : トランザクションの終了を待つ

先行トランザクションがカーソルのOPEN文を実行した場合は、カーソル宣言の更新可能性句の指定によって占有待ちの制御が異なります。

更新可能性句がREAD ONLYの場合は、SELECT文と同じになります。更新可能性句がFOR UPDATEの場合は、UPDATE文と同じになります。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2003-2004