2016-07-19 5 views
0

に参加します。 はそれも有効なシナリオザ・は無関係です参加のOracle SQL:中NOLOCKは、テーブル名には、ステートメントに参加した後、私はNOLOCKを使用することはできませんなステートメント

+1

これはOracleでは必要ありません。読者はライターをブロックしません。プラス:Oracleは、デフォルトでは、SQL Serverの一貫性モデルは、したがって、共有ロックを使用してブロックを読み込み、読んで多くの行を読んでクエリを実行するときに(NOLOCK)ヒントが一般的に使用される書き込みだけでなく、ロックescallationが起こるかもしれない、汚れが追加するには –

答えて

2

に参加する上でコミットされていないデータを読み取るしようとすることです。 OracleではNOLOCKは使用されません。照会には、コミットされたデータ(照会を実行するトランザクション内のコミットされていない変更のみ)が表示されます。

あなたは、このようなSELECT * FROM tbl NOLOCKとしてクエリを書くことができますが、NOLOCKは、単にテーブルの別名として使用されており、クエリメカニズムは変更されません。

+1

を読み込みサポートしていません。 。したがって、単純なクエリでも、テーブル全体またはそれ以上のテーブルをロックすることができ、クエリが終了するまで誰もデータを変更することはできません。 Oracleはスナップショット読取り一貫性を使用し、ロックをメモリーに格納しないため、そこにロック・エスカレーションのようなものはありません。 – Husqvik

関連する問題