[Database]Transaction Isolation Level(트랜잭션 고립 레벨)
트랜잭션 고립 레벨
Database를 관리, 운영, 지원하다보면
트랜잭션이라는 말을 많이 듣게 됩니다.
이때 다양한 트랜잭션 관련 용어들을 보고 듣게 되는데, 잘 이해가 안가는 표현들이 많았던 경험들이 있으실겁니다.
오늘은 거기에 대한 내용을 정리 해볼께요~
트랜잭션에서 병행 작업시 발생하는 문제점
◎ dirty reads : 다른 트랜잭션에서 커밋되지 않은 변경내용을 볼 수 있다.
◎ nonrepeatable reads : 최초에 읽기 작업 후, 다른 트랜잭션이 데이터를 변경 시키고, 그 다음 읽기 작업이 변경된 사항을 읽어들여 최초의 읽기와 두 번째 읽기 작업 의 결과가 불일치 하는 경우.
◎ phantom reads : nonrepeatable reads에 where 조건 추가.
고립 레벨 종류 (Transaction Isolation Level)
◎ TRANSACTION_NONE : 트랜잭션 지원 안함.
◎ TRANSACTION_READ_UNCOMMITTED : 커밋되지 않은 데이터도 볼 수 있음.
◎ TRANSACTION_READ_COMMITTED : 커밋된 데이터만 볼 수 있음.
◎ TRANSACTION_REPEATABLE_READ : dirty reads와 nonrepeatable 방지, phantom reads는 방 지 못함.
◎ TRANSACTION_SERIALIZABLE : dirty / nonrepeatable / phantom reads 모두 방지.
By.sTricky
'Database > ORACLE' 카테고리의 다른 글
SQL 정렬 가독성 높여주는 웹사이트 소개 feat.instant SQL formatter (0) | 2020.02.10 |
---|---|
[oracle]오라클 운영 스크립트 모음 DBA script list (0) | 2020.01.29 |
V$SESSION(GV$SESSION) COMMAND 컬럼의 코드표 (0) | 2015.06.17 |
[Oracle Admin] spfile 을 사용한 control file 다중화하기 (0) | 2013.06.18 |
Archive mode & No Archive mode (0) | 2013.06.18 |