回答編集履歴
5
修正
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
SELECTのみの場合でも、2つ以上のSQLをREPEATABLE READ以上の分離レベルで実行するにはトランザクションが必要です。トランザクションを分けると前後で同じSQLを実行した場合の結果が変わってしまう可能性があるためです。
|
7
|
+
SELECTのみの場合でも、2つ以上のSQLをREPEATABLE READ以上の分離レベルで実行するにはトランザクションが必要です。トランザクションを分けると前後で同じSQLを実行した場合の結果が変わってしまう可能性があるためです。
|
8
8
|
|
9
9
|
|
10
10
|
|
4
追記
test
CHANGED
@@ -13,3 +13,7 @@
|
|
13
13
|
|
14
14
|
|
15
15
|
なお、SQL ServerやDB2のような通常のSELECTでも参照ロックが取得されるRDBMSではCOMMITを早めに明示的に行った方がよいです。REPEATABLE READ以上の分離レベルを使用するとトランザクション終了まで参照ロックが残り、ロック競合が生じやすいためです。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
[Wikipedia トランザクション分離レベル](https://ja.wikipedia.org/wiki/%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B6%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E5%88%86%E9%9B%A2%E3%83%AC%E3%83%99%E3%83%AB)
|
3
追記
test
CHANGED
@@ -4,10 +4,12 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
SELECTのみの場合でも、2つ以上のSQLをREPEATABLE READ以上の分離レベルで実行するにはトランザクションが必要です。トランザクションを分けると前後で同じSQLを実行した場合の結果が変わってしまう可能性があるためです。
|
7
|
+
SELECTのみの場合でも、2つ以上のSQLをREPEATABLE READ以上の分離レベルで実行するにはトランザクションが必要です。トランザクションを分けると前後で同じSQLを実行した場合の結果が変わってしまう可能性があるためです。またその逆として、COMMITで一度トランザクションを終了しなければ他の処理の更新結果を参照することは出来ません。
|
8
|
-
|
9
|
-
|
10
8
|
|
11
9
|
|
12
10
|
|
13
11
|
[Oracle Database 概要 11gリリース1(11.1)4 トランザクションの管理](http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05765-03/transact.htm)
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
なお、SQL ServerやDB2のような通常のSELECTでも参照ロックが取得されるRDBMSではCOMMITを早めに明示的に行った方がよいです。REPEATABLE READ以上の分離レベルを使用するとトランザクション終了まで参照ロックが残り、ロック競合が生じやすいためです。
|
2
修正
test
CHANGED
@@ -4,7 +4,9 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
SELECTのみの場合でも、2つ以上のSQLをREPEATABLE READ以上の分離レベルで実行するにはトランザクションが必要です。
|
7
|
+
SELECTのみの場合でも、2つ以上のSQLをREPEATABLE READ以上の分離レベルで実行するにはトランザクションが必要です。トランザクションを分けると前後で同じSQLを実行した場合の結果が変わってしまう可能性があるためです。
|
8
|
+
|
9
|
+
|
8
10
|
|
9
11
|
|
10
12
|
|
1
追記
test
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
Oracleではトランザクションは常に有効です。
|
2
2
|
|
3
|
-
差異が生じているとしたらそれはトランザクションではなく
|
3
|
+
差異が生じているとしたらそれはトランザクションではなくコネクションプールの有無によるものではないでしょうか。
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
SELECTのみの場合でも、REPEATABLE READ以上の分離レベル
|
7
|
+
SELECTのみの場合でも、2つ以上のSQLをREPEATABLE READ以上の分離レベルで実行するにはトランザクションが必要です。ロックを解放してしまうと、前後で同じSQLを実行した場合の結果が変わってしまう可能性があるためです。
|
8
8
|
|
9
9
|
|
10
10
|
|