Unofficial Db2 FAQ

Db2でロックをかけずにデータを読む方法がありますか?

:

DB2 v9.7からは「CS with CC」とよばれる機能が追加され、分離レベルCSで稼動しているときは、ロック開放を待たずに(ロックウェイトせずに)コミット済みの(確定済みの)データを戻すという動作になります。

これにより「更新トランザクションが読み取りをブロックしない」という動作を実現しています。

詳細は以下に説明されています。

v9.5以前のバージョンでは、分離レベルをUR ( Uncommitted Read )/非コミット読み取りにすればロックをかけずに行を読むことが可能です。

例 SELECT * FROM table1 WITH UR

ただし、読み取れる行はコミットされたものではなく、その時点でのas-isのデータです。次の瞬間にロールバックされ消失するかもしれませんし、更に別の値に変化する可能性もあります。従って、確定したデータを処理すべき場面では使用しない方が良いです。