| Symfoware(R) Server RDBユーザーズガイド 応用プログラム開発編 - FUJITSU - | 
| 目次
			索引    | 
 第7章 応用プログラムとトランザクション処理
第7章 応用プログラムとトランザクション処理
資源の競合が起きた場合に、どのタイミングまで占有待ちとなるのかは、トランザクションモードの指定によって異なります。以下に、トランザクションモードの指定と資源の占有について示します。
| 
 | 先行トランザクション | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 独立性水準 | 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文の終了を待つ
単一行SELECT文
更新可能性句に、FOR READ ONLYを指定したカーソルのOPEN文
トランザクションアクセスモードが読込み専用モードのときのOPEN文
先行トランザクションの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文の終了を待つ
単一行SELECT文
更新可能性句に、FOR READ ONLYを指定したカーソルのOPEN文
トランザクションアクセスモードが読込み専用モードのときのOPEN文
先行トランザクションのSQL文が上記以外の場合は、トランザクションの終了を待つ
× : トランザクションの終了を待つ
先行トランザクションがカーソルのOPEN文を実行した場合は、カーソル宣言の更新可能性句の指定によって占有待ちの制御が異なります。
更新可能性句がREAD ONLYの場合は、SELECT文と同じになります。更新可能性句がFOR UPDATEの場合は、UPDATE文と同じになります。
| 目次
			索引    |