4. [예시문제] OLTP(온라인 트랜잭션 처리) 환경에서 특정 테이블의 대량 UPDATE 작업 시, Deadlock 발생 가능성을 줄이고 성능을 향상시키기 위한 가장 적절한 조치로 거리가 먼 것은?
- UPDATE 범위를 작게 나누어 여러 트랜잭션으로 분리 실행한다.
- INDEX를 적절히 활용하여 UPDATE 대상 레코드 탐색 시간을 줄인다.
- 트랜잭션 내부에서 UPDATE 구문 앞에 LOCK TABLE 문을 사용하여 테이블 전체를 잠근다.
- 불필요한 트리거나 제약 조건을 비활성화하여 오버헤드를 줄인다.
정답: 3번
대량 UPDATE 시 LOCK TABLE을 사용하여 테이블 전체를 잠그는 것은 오히려 동시성을 저해하고 다른 트랜잭션의 대기를 유발하여 Deadlock 발생 가능성을 높이거나 시스템 전반의 성능을 저하시킬 수 있습니다. Deadlock을 줄이고 성능을 향상시키려면 갱신 범위를 작게 나누거나, 인덱스를 활용하여 잠금 시간을 최소화하고, 불필요한 트리거/제약 조건을 비활성화하는 것이 좋습니다.