사용자 도구

사이트 도구


study:oracle:adv_owi_10g:transaction_wait_event

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
study:oracle:adv_owi_10g:transaction_wait_event [2009/08/14 16:58]
starlits
study:oracle:adv_owi_10g:transaction_wait_event [2009/08/17 09:39] (현재)
starlits
줄 3: 줄 3:
 ===== 트랜잭션 작업순서 ===== ===== 트랜잭션 작업순서 =====
  
-  * 사용자 DML(트랜잭션)수행 작업순서+== 사용자 DML(트랜잭션)수행 작업순서 == 
  
 ^ 순서 ^ 작업내용 ^ 실패시 동작 ^ 이벤트 ^ ^ 순서 ^ 작업내용 ^ 실패시 동작 ^ 이벤트 ^
줄 125: 줄 125:
 ==== 인덱스 리프 노드에서 Split이 발생하는 경우 ==== ==== 인덱스 리프 노드에서 Split이 발생하는 경우 ====
  
-  - +  - 비트리 인덱스는 **데이터를 추가하는 과정에서 리프 노드가 꽉차면 Split을 함으로써 Balance를 맞춘다.** 
 +  - **enq:TX - index contention** 
 +    - 보통의 상황에서는 잘 볼생하지 않는다. 
 +    - 동시에 여러 세션에서 인덱스가 생성되어 있는 테이블에 대해서 많은 양의 DML을 수행하는 경우에 주로 발생한다. 
 +    - 시퀀스 등을 사용해서 값을 생성하는 컬럼에 대해 인덱스가 생성되는 경우 
 +    - 인덱스가 생성되어 있지 않은 테이블을 변경하는 경우 
 +    - 테이블에 LOB컬럼이 있을때 동시에 여러세션이 LOB테이블을 변경하는 경우
  
 ==== 기타(enq: Tx - contention) ==== ==== 기타(enq: Tx - contention) ====
  
-  - +  - **enq:TX - contention** 
 +    - Distributed Transaction(분산 트랜잭션) 환경에서 Prepared Transaction에 의해 락이 획득된 로우를 읽는 경우 \\ 트랜잭션이 종료(commit,rollback,in-doubt)될때까지 TX락을 Shared Mode로 획득하기 위해서 대기한다. 
 +    - FLM을 세그멘트 공간관리기법으로 사용하는 경우, \\ TFL(Transaction FreeList)을 확보하려는 프로세스는 TFL을 확보하지 못할 경우 \\ 이미 TFL을 확보한 Transaction의 TX락을 Shared Mode로 확보하기 위해서 대기한다. 
 +    - 언두 세그먼트 헤더의 트랜잭션 테이블에서 새로운 슬롯을 할당받고자 하는 경우 \\ TX락을 Exclusive 하게 획득한다. 
 +  - 이들 경우는 겨의 보고되지 않고 있으며, 성능상 이슈도 없는 것으로 보인다. 
 + 
 +=== 동시에 많은 수의 트랜잭션이 발생할 경우 enq:TX - contention 이벤트 대기현상 문제가 생길 수 있다.  ===
  
 ===== enq:UL - contention, PL/SQL lock Timer ===== ===== enq:UL - contention, PL/SQL lock Timer =====
study/oracle/adv_owi_10g/transaction_wait_event.1250236710.txt.gz · 마지막으로 수정됨: 2009/08/14 16:58 저자 starlits