연습문제

문제 1. 다음 중 Oracle Lock에 대해 잘못 설명한 것은?

1) 다른 트랜잭션이 갱신 중인 레코드를 읽고자 할 때 대기하지 않아도 된다.
2) 다른 트랜잭션이 갱신 중인 레코드를 갱신하고자 할 때 대기해야 한다.
3) 다른 트랜잭션이 읽고 있는 레코드를 갱신하고자 할 때 대기해야 한다.
4) 아무리 많은 데이터를 갱신하더라도 Lock Escalation 이 발생하지 않는다.

문제 2. 다음 중 교착상태 발생 가능성을 줄이는 방안으로 적절치 않은 것은?

1) 원자성을 훼손하지 않는 수준에서 트랜잭션을 가능한 짧게 정의하고, 같은 데이터를 갱신하는 트랜잭션이 동시에 수행되지 않도록 설계한다.
2) 트랜잭션 격리성 수준을 상향 조정한다.
3) SQL 문장이 가장 빠른 시간 내에 처리를 완료하도록 하는 것이 Lock 튜닝의 기본이다.
4) 테이블 접근 순서를 같게 처리한다.

문제 3. 트랜잭션의 4가지 주요 특징 중, "트랜잭션이 실행을 완료하고 나서 데이터베이스가 모슨된 상태에 놓이지 않아야 한다" 는 내용과 관련 있는 것은?

1) 원자성 (Atomicity)
2) 일관성 (Consistency)
3) 격리성 (Isolation)
4) 영속성 (Durability)

문제 4. EMP 테이블 7788번 사원의 SAL 값이 현재 1,000 인 상황에서 아래 TX1, TX2 두 개의 트랜잭션이 동시에 수행되었다.

양쪽 트랜잭션이 모두 완료된 시점에 7788 번 사원의 SAL 값은 ?

<TX1>시점<TX2>
update emp set sal = sal + 100
where empno = 7788 ;
t1
t2update emp set sal = sal + 200
where empno = 7788 ;
commit;t3
t4commit;

1) 1,000 2)1,100 3) 1,200 4) 1,300

문제 5. Oracle 에서 Snapshot too old 에러를 피하는 방법으로 적절치 않은 것은?

1) 커밋을 자주 수행한다.
2) 대량 업데이트 후에 곧바로 해당 테이블 또는 인덱스를 Full Scan 한다.
3) order by 등을 강제로 삽입해 소트연산이 발생하도록 한다.
4) Undo 영역의 크기를 증가시킨다.

정답 : 3 / 2 / 2 / 4 / 1