반응형
WITH UR이란 ?
DB2를 사용해보신 분이라면 쿼리문에 WITH UR이 붙어있는 구문을 본 적이 있을 것이다.
UR이란, Isolation level 중 하나로 Uncommited Read 의 약어이다.
기본적으로 내가 조회하고자 하는 table의 다른 트랜잭션이 진행 중일 때는 동시 조회가 불가능하다.
다른 트랜잭션이 끝날 때 까지 대기하다가 commit 또는 rollback 처리 후에 조회가 가능하다.
**그러나 WITH UR 옵션을 붙이면 다른 트랜잭션이 진행 중이라 하더라도 대기하지 않고 실시간으로 변경중인 데이터를 가지고 와서 조회할 수 있다.**
단, commit이 되지 않은 데이터를 가지고 오는 경우, 신뢰성을 보장 되지 않는다.
보통 단순 조회 SELECT시 사용한다.
SELECT 외 INSERT,UPDATE,DELETE 문에도 WITH UR을 사용할 수 있지만 큰 의미는 없다.
DB2에서는 WITH UR옵션에 상관없이 삽입, 갱신, 삭제되는 원장의 모든 행에 락을 걸기 때문이다.
따라서 조회 외 변경되는 행을 commit 또는 Rollback 전까지는 다른 응용프로그램에 의해서 변경될 수 없다.
즉, SELECT문에서만 유의미하게 동작한다고 할 수 있다.
문법은 쿼리의 가장 마지막에 사용한다.
*사용 예
SELECT * FROM table WITH UR;
반응형
'Back-end > DataBase' 카테고리의 다른 글
[ORACLE] NVL 함수란? 쿼리 널처리 (3) | 2022.03.02 |
---|---|
[SQL] WITH 절이란? (0) | 2022.02.04 |
[DBMS] MySQL dump / import. 디비 덤프 및 임포트 하기 (0) | 2021.04.16 |
Oracle TO_CHAR / MySQL DATE_FORMAT (0) | 2021.01.18 |
오라클 에러 ORA-01950: 테이블스페이스 권한이 없습니다. (0) | 2020.06.22 |