본문 바로가기

SQLP - 트랜잭션(Transaction) @markdown # 트랜잭션(Transaction)____- 트랜잭션은 업무 처리를 위한 논리적인 작업 단위 ## 트랜잭션의 특징 ### 원자성(Atomicity)- 트랜잭션은 더 이상 분해가 불가능한 업무의 최소단위이므로, 전부 처리되거나 아예 하나도 처리되지 않아야 함. ### 일관성(Consistency)- 일관된 상태의 데이터베이스에서 하나의 트랜잭션을 성공적으로 완료하고 나면 그 데이터베이스는 여전히 일관된 상태여야 함. ### 격리성(Isolation)- 실행 중인 트랜잭션의 중간 결과를 다른 트랜잭션이 접근할 수 없음 ### 영속성(Durability)- 트랜잭션이 일단 실행을 성공적으로 완료하면 그 결과는 데이터베이스에 영속적으로 저장. ## 트랜잭션의 격리성 ### 낮은 단계의 격리성 .. 더보기
SQLP - Lock @markdown # Lock____## Lock이란- 같은 자원을 액세스 하려는 다중 트랜잭션 환경에서 데이터베이스의 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적 진행을 보장할 수 있는 직렬화(Serialization) 장치 ## 공유 Lock과 배타적 Lock____### 공유 Lock- 공유 Lock은 데이터를 읽고자 할 때 사용- 다른 공유 Lock과는 호환되지만 배타적 Lock과는 호환되지 않음 ### 배타적 Lock- 배타적 Lock은 데이터를 변경하고자 할 때 사용되며, 트랜잭션이 완료될 때까지 유지- 해당 Lock이 해제될 때까지 다른 트랜잭션은 해당 Resource에 접근할 수 없음 ## 블로킹과 교착상태____ ### 블로킹- Lock 경합이 발생해 특정 세션이 작업을 진행하지 못.. 더보기
SQLP - 데이터베이스 I/O 원리 @markdown # 데이터베이스 I/O 원리____ ## 블록단위 I/O- 데이터 파일에서 DB 버퍼 캐시로 블록을 적재할 때- 데이터 파일에서 블록을 직접 읽고 쓸때- 버퍼 캐시에 변경된 블록을 다시 데이터 파일에 쓸 때 ## 메모리 I/O vs 디스크 I/O### I/O 효율과 튜닝의 중요성- 디스크 데이터 입출력은 디스크의 액세스 암(Arm)이 움직이면서 헤드를 통해 데이터를 읽고 쓰기 때문에 느림- 메모리를 통한 입출력은 전기적 신호로 데이터를 읽기 때문에 빠름- 모든 DBMS는 읽고자 하는 블록을 먼저 버퍼 캐시에서 찾고, 없을 경우에는 디스크에서 데이터를 읽어 버퍼 캐시로 적재 한 후 읽기 작업을 수행- 디스크 I/O를 최소화하고 버퍼 캐시 효율을 높이는 것이 데이터베이스 I/O 튜닝의 목표.. 더보기