River.log
로그인
River.log
로그인
[2) 트랜잭션과 Lock]1. 트랜잭션 동시성 제어
Yu River
·
2022년 5월 31일
팔로우
0
SQLP
SQLSERVER
oracle
오라클성능고도화
0
오라클성능고도화1 정리요약
목록 보기
12/55
트랜잭션 동시성 제어
동시에 실행되는 트랜잭션 수를 최대화 하면서도 CRUD 시 데이터의 무결성이 유지될 수 있도록 노력하는 것이다.
여러개의 트랜잭션이 동시에 수행될 때, 데이터베이스 애플리케이션은 이들 트랜색션이 서로 간섭을 일으키는 현상을 최소화 하면서 데이터의 일관성과 무결성이 보장되도록 개발되어야 한다.
(1) 동시성 제어가 어려운 이유
동시성과 일관성이 트레이드 오프 관계
1. 동시성이란?
다중 사용자가 같은 테이터를 동시에 액세스할 때 일어나는 현상으로 트랜잭션들이 순차적으로 실행되는 것이 아니라, 트랜잭션을 구성하는 각각의 쿼리문들이 트랜잭션의 순서에 상관없이 동시에 실행되는 것이다.
동시성을 높이기 위해 Lock의 사용을 최소화하면 읽기 일관성을 유지하기 어려워지고 데이터의 일관성을 높이려고 Lock을 많이 사용하면 동시성이 떨어지게 된다.
👉 '트레이드 오프' 관계 키워드가 많이 나온다!
2. 일관성이란?
자신이 발생시킨 변경사항과 다른 트랜잭션의 변경 사항(읽을 수 있는 버전만 허용)을 포함해 일관성 있는 상태로 데이터를 제공하는 것이다.
(2) ⭐️ 트랜잭션
여러 개의 수정작업이 하나의 작업처럼 전부 처리되거나 아예 전부 처리가 안 되도록(ALL or Nothing)하는 일의 최소 단위로 업무 처리의 기본 단위를 정의한다.
⭐️⭐️
DB 공부하면서 트랜잭션을 모른다?! >> 아주아주 헛것을 공부하고 있는 것이므로 무!조!건! 정확하게 이해하고 짚고 넘어가야 한다 !!
⭐️⭐️⭐️
⭐️⭐️⭐️⭐️⭐️ 트랜잭션의 특징(ACID)
1. 원자성(Atomicity) : 트랜잭션의 더이상 분해가 불가능한 업무의 최소단위
2. 일관성(Consistency) : 트랜잭션 실행의 결과로 데이터베이스 상태가 모순되지 않도록 하는것
3. 격리성(Isolation) : 트랜잭션이 실행 중에 생성하는 연산의 중간 결과는 다른 트랜잭션이 접근할 수 없다.
4. 영속성(Durability) : 트랜잭션이 일단 그 실행을 성공적으로 완료하면 그 결과는 데이터베이스에서 영속적으로 저장된다.
Yu River
도광양회(韜光養晦) ‘빛을 감추고 어둠속에서 힘을 기른다’
팔로우
이전 포스트
[1) 데이터 모델링의 이해]11. Shared Pool
다음 포스트
[2) 트랜잭션과 Lock]2. 트랜잭션 수준 읽기 일관성
0개의 댓글
댓글 작성