2장._트랜잭션과_Lock
2012.03.16 15:23
02 트랜잭션과 Lock
01 트랜잭션 동시성 제어
02 트랜잭션 수준 읽기 일관성
03 비관적 vs. 낙관적 동시성 제어
04 동시성 구현 사례
05
오라클 Lock
읽기 일관성 구현 방법
-
DB2, SQL Server, Sybase : Lock을 통해 읽기 일관성을
구현
-
오라클 : Undo 데이터를 이용해 읽기 일관성을 구현
오라클은 데이터를 읽을 때 Lock을 사용하지 않다 보니 확실히
동시성 측면에서는 다른 DBMS보다 우월하다고 평가할 수 있다.
오라클은 10g부터 Wait
Event를 아래와 같이 분류해 놓았다.
SQL> select
wait_class, count(*)
from v$event_name
group by wait_class
order by 1;
WAIT_CLASS
COUNT(*)
----------------------------------------------------------------
---------
Administrative
46
Application
12
Cluster 48
Commit
1
Concurrency
25
Configuration
23
Idle
63
Network
27
Other
601
Scheduler 2
System I/O
24
User I/O
17
12 rows selected.
주목할 것은 오라클에서 발생하는 Lock 경합의 대부분을 차지하는 enq: TM - contention 이벤트와
enq: TX – row lock contention 이벤트가 Concurrency가 아닌 Application으로 분류돼 있다는 사실이다.
SQL> select event#,
name,
wait_class
from
v$event_name
where
name in (
'enq: TM - contention',
'enq: TX - row lock contention'
);
EVENT#
NAME
WAIT_CLASS
---------
----------------------------------- --------------------------------------------------
178 enq: TM - contention
Application
186 enq: TX - row lock contention
Application
2 rows selected.
테이블 Lock과 로우
Lock 관련 이벤트를 프로그램 오류와 같이 분류한 것인 이들 문제가 DBA 이슈가 아니라
개발자 이슈임을 분명히 밝히고 있는 것이다.
Lock에 대한 근본적인 해법은 애플리케이션 로직에서 찾아야 한다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
26 | 3._SQL트레이스 | sapius | 2012.04.03 | 37297 |
25 | 8._Statspack_AWR | 시와처 | 2012.04.01 | 11767 |
24 |
7._Response_Time_Analysis_방법론과_OWI
![]() | 시와처 | 2012.04.01 | 5916 |
23 | 6._V$SYSTEM_EVENT | 시와처 | 2012.04.01 | 3507 |
22 | 4._동시성_구현_사례 [1] | dasini | 2012.03.26 | 11962 |
21 |
5._오라클_Lock
![]() | 시와처 | 2012.03.25 | 12875 |
20 | 3._비관적_vs._낙관적_동시성_제어 | dasini | 2012.03.25 | 6396 |
19 | 2._AutoTrace | 남송휘 | 2012.03.25 | 3138 |
18 | 1._Explain_Plan | 남송휘 | 2012.03.25 | 4543 |
17 | 3장._오라클_성능_관리 | 남송휘 | 2012.03.25 | 3117 |
16 |
2._트랜잭션_수준_읽기_일관성
![]() | AskZZang | 2012.03.20 | 6364 |
15 | 1._트랜잭션_동시성_제어 | AskZZang | 2012.03.19 | 4883 |
14 | 11._Shared_Pool | 박영창 | 2012.03.19 | 3395 |
13 | 10._대기_이벤트 | 박영창 | 2012.03.18 | 10624 |
12 | 9._Snapshot_too_old | 박영창 | 2012.03.18 | 9969 |
11 | 8._블록_클린아웃 | 시와처 | 2012.03.18 | 12305 |
10 |
7._Consistent_vs._Current_모드_읽기
![]() | 시와처 | 2012.03.18 | 5708 |
» | 2장._트랜잭션과_Lock | AskZZang | 2012.03.16 | 5462 |
8 |
6._문장수준_읽기_일관성
![]() | 정찬호 | 2012.03.11 | 57563 |
7 |
4._Redo
![]() | 남송휘 | 2012.03.11 | 5606 |