1) 다른 트랜잭션이 갱신 중인 레코드를 읽고자 할 때 대기하지 않아도 된다.
2) 다른 트랜잭션이 갱신 중인 레코드를 갱신하고자 할 때 대기해야 한다.
3) 다른 트랜잭션이 읽고 있는 레코드를 갱신하고자 할 때 대기해야 한다.
4) 아무리 많은 데이터를 갱신하더라도 Lock Escalation 이 발생하지 않는다.
1) 원자성을 훼손하지 않는 수준에서 트랜잭션을 가능한 짧게 정의하고, 같은 데이터를 갱신하는 트랜잭션이 동시에 수행되지 않도록 설계한다.
2) 트랜잭션 격리성 수준을 상향 조정한다.
3) SQL 문장이 가장 빠른 시간 내에 처리를 완료하도록 하는 것이 Lock 튜닝의 기본이다.
4) 테이블 접근 순서를 같게 처리한다.
1) 원자성 (Atomicity)
2) 일관성 (Consistency)
3) 격리성 (Isolation)
4) 영속성 (Durability)
<TX1> | 시점 | <TX2> |
---|---|---|
update emp set sal = sal + 100 where empno = 7788 ; | t1 | |
t2 | update emp set sal = sal + 200 where empno = 7788 ; | |
commit; | t3 | |
t4 | commit; |
1) 1,000 2)1,100 3) 1,200 4) 1,300
1) 커밋을 자주 수행한다.
2) 대량 업데이트 후에 곧바로 해당 테이블 또는 인덱스를 Full Scan 한다.
3) order by 등을 강제로 삽입해 소트연산이 발생하도록 한다.
4) Undo 영역의 크기를 증가시킨다.
정답 : 3 / 2 / 2 / 4 / 1