행위

Enqueue wait 이벤트

DB CAFE

thumb_up 추천메뉴 바로가기


Oracle 대기열에는 여러 유형이 있으며 다음은 가장 일반적인 유형의 샘플입니다.

1 CF Enqueue[편집]

CF 인큐는 제어 파일 인큐(일명 enq: CF - 경합 )이며 제어 파일에 병렬 액세스 6하는 동안 발생합니다. CF 인큐는 리두 로그 아카이브, 리두 로그 전환 및 백업 시작 명령 과 같이 제어 파일을 읽어야 하는 모든 작업 중에 볼 수 있습니다 .        

2 CI Enqueue[편집]

- CI Enqueue는 Cross Instance enqueue( enq: US - contention 이라고도 함 )이며 세션이 데이터베이스 링크를 통한 쿼리와 같은 교차 인스턴스 호출을 실행할 때 발생합니다.

3 FB enqueue[편집]

- 데이터 블록이 ASSM(Automatic Segment Space Management 또는 비트맵 자유 목록)을 사용하는 경우에만 사용되는 Format Block enqueue입니다. 예상할 수 있듯이 일반적인 FB 인큐는 버퍼 사용량이 많은 조건과 관련이 있습니다. 특히 ASSM은 DML 로드가 많은 경우 성능 문제를 일으키는 경향이 있기 때문입니다.

4 HV enqueue[편집]

- HV enqueue( enq: HV - contention 이라고도 함 )는 HW enqueue와 유사하지만 병렬 Direct Path INSERT용입니다.

4.1 해결책 HYBRID TSM/HWMB를 TSM로 변환[편집]

성능저하 원인 => LOAD AS SELECT (HYBRID TSM/HWMB)

create table lhs.part_t4 pctfree 0 nologging compress parallel 8 as 
select /*+ full(a) parallel (a 6) */ * from lhs.part_t1 a
;

Elapsed: 00:02:04.20

---------------------------------------------------------------------------------------------------------------------------------------
|CNo| Timestamp |  Rows   | Operation                             |  Name                     |Ela(cs)|  LogIO |PhyIO | Pstart| Pstop |
---------------------------------------------------------------------------------------------------------------------------------------
|  0|07-31 11:46|         | CREATE TABLE STATEMENT                |                           |       |        |      |       |       |
|  0|07-31 11:46|         | PX COORDINATOR                        |                           |       |        |      |       |       |
|  0|07-31 11:46|         |  PX SEND QC (RANDOM)                  |:TQ10000                   |       |        |      |       |       |
==> 성능저하 발생
|  0|07-31 11:46|         |   LOAD AS SELECT (HYBRID TSM/HWMB)    |PART_T4                    |       |        |      |       |       |
|  0|07-31 11:46|         |    OPTIMIZER STATISTICS GATHERING     |                           |       |        |      |       |       |
|  0|07-31 11:46|         |     PX BLOCK ITERATOR                 |                           |       |        |      |     1 |     2 |
|  0|07-31 11:46|         |      TABLE ACCESS FULL                |PART_T1                    |       |        |      |     1 |     2 |
---------------------------------------------------------------------------------------------------------------------------------------
  • TSM/HWMB를 TSM으로 돌리는 방법
alter session set "_px_hybrid_TSM_HWMB_load"=false ;

alter session set "_force_tmp_segment_loads"=true;

5 HW enqueue[편집]

- HW High Water enqueue( enq: HW - 경합 )는 경쟁 처리가 동일한 테이블에 삽입되고 동시에 테이블의 상위 워터 마크를 늘리려고 할 때 발생합니다. HW enqueue는 freelist를 추가하거나 세그먼트를 ASSM으로 이동하여 제거할 수 있습니다.

6 KO enqueue[편집]

- KO enqueue(일명 enq: KO - fast object checkpoint )는 Oracle STAR 변환에서 나타나고 높은 대기열 대기는 최적이 아닌 DBWR 백그라운드 프로세스를 나타낼 수 있습니다.

7 PE enqueue[편집]

- PE enqueue( enq: PE - contention 이라고도 함 )는 시스템 변경 또는 세션 문 변경 후에 발생하는 매개변수 대기열 입니다.

8 PS enqueue[편집]

- PS enqueue는 Oracle 병렬 쿼리에서만 볼 수 있는 Parallel Slave 동기화 enqueue( enq: PS - contention )입니다. PS enqueue는 OPQ에 대한 팩토텀(슬레이브) 프로세스를 할당할 때 전처리 문제가 발생할 때 발생합니다.

9 RO Enqueue[편집]

- RO enqueue는 Reuse Object enqueue이며 테이블 자르기 및 테이블 삭제 DDL 작업 과 관련된 교차 인스턴스 인큐 입니다.

10 SQ enqueue[편집]

- SQ enqueue는 Sequence Cache enqueue( enq: SQ - contention 이라고도 함 )는 Oracle 시퀀스에 대한 액세스를 직렬화하는 데 사용됩니다.

11 SS enqueue[편집]

- SS enqueue는 Sort Segment enqueue( enq:SS - contention 이라고도 함 )이며 큰 결과 집합의 정렬과 관련이 있습니다.

12 SS enqueue[편집]

- SS enqueue는 Sort Segment enqueue( enq: SS - contention 이라고도 함 )이며 프로세스가 대규모 정렬 작업을 수행할 때 발생합니다.

13 ST enqueue[편집]

- ST enqueue는 많은 파티션이 동시에 생성될 때 분할된 환경에서 볼 수 있습니다.

14 TC enqueue[편집]

- TC enqueue는 DBWR 백그라운드 프로세스와 관련되며 - alter tablespace - 명령이 실행될 때 발생합니다. 또한 행이 데이터 버퍼 캐시에 로드되지 않고 직접 액세스되는 병렬 전체 테이블 스캔을 수행할 때 TC 대기열이 표시됩니다.

15 TM enqueue[편집]

- 트랜잭션 관리( enq: TM - contention 이라고도 함 )와 관련된 TM 대기열로 테이블 잠금이 필요한 재구성 활동으로 테이블이 명시적으로 잠겨 있을 때 볼 수 있습니다.

16 TQ enqueue[편집]

- TQ enqueue는 Queue Table enqueue( enq: TQ - DDL 경합 이라고도 함 )이며 데이터 ump(내보내기 가져오기) 작업 중에 발생합니다.

17 TS enqueue[편집]

- TS enqueue는 임시 세그먼트 enqueue( enq: TS - 경합 )이며 이러한 enqueue는 디스크 정렬 작업 중에 발생합니다.

18 TT enqueue[편집]

- TT enqueue( enq: TT - contention 이라고도 함 )는 병렬 테이블스페이스 작업에서 교착 상태를 방지하는 데 사용됩니다. TT 인큐는 병렬 생성 테이블스페이스 및 병렬 시점 복구(PITR)로 볼 수 있습니다.

19 TX 실행 대기열[편집]

- TX 대기열은 트랜잭션 대기열(일명 enq: TX - 경합 )이며 일반적으로 여러 트랜잭션이 동일한 데이터 블록을 업데이트하려고 시도하는 조건에서 버퍼 사용 대기와 관련됩니다.

enq: TX - 행 잠금 경합 enq: TX - ITL 항목 할당 enq: TX - 행 잠금 경합

20 UL enqueue[편집]

- UL enqueue는 User Lock enqueue(enq: UL - 경합)이며 dbms_lock.request 에서 잠금이 요청될 때 발생합니다 . UL 대기열은 Oracle Data Pump에서 볼 수 있습니다.

21 US Enqueue[편집]

- US enqueue는 Oracle 자동 UNDO 관리에서 발생하며 실행 취소 세그먼트가 온라인 및 오프라인으로 이동되었습니다.