2

Oracleでpgとテーブルロックに違いはありますか

する

select * from emp for update;

結果はテーブルロック?

select * from emp where deptno=10 for update;

ページロックが発生しますか?

4

1 に答える 1

7

Oracle にはページ ロックのようなものはありません。Oracle には、行レベルのロックとテーブル レベルのロックがあります。

これらのステートメントはどちらも、クエリが返すすべての行に対して行レベルのロックを作成します。EMP1つ目は、問合せが実行されたSCNの時点で表にあったすべての行に行レベルのロックを作成します。2 つ目は、クエリが実行された SCN の時点で 10のEMPテーブルにあったすべての行に行レベルのロックを作成します。DEPTNOどちらのクエリもテーブルに共有ロックを作成し、他のセッションがテーブルで DDL を実行できないようにしますが、テーブル ロックについて話しているときに、それが話題になることはめったにありません。

于 2012-04-20T14:49:35.610 に答える