기술 정보
home
채널 소개
home

병렬 쿼리 모니터링(Parallel Session) 방법

문서 유형
기술 정보
분야
모니터링/점검
키워드
Parallel Session
v$session
1 more property

개요

병렬 쿼리(Parallel Query)는 대용량 데이터를 효율적으로 처리하기 위해 사용됩니다. 병렬 쿼리 수행 세션과 그 상태를 확인하고자 할 때, 다음과 같은 방법을 통해 관련 정보를 조회할 수 있습니다.

방법

병렬 쿼리를 수행하는 세션 정보 확인

v$px_session 세션에서 확인할 수 있습니다.
Parent/Child 구분, SID, 사용자 정보, 요청된 Degree 등을 파악할 수 있습니다
select decode(a.qcserial#, null, 'PARENT', 'CHILD') stmt_level, a.sid, a.serial#, b.username, a.degree, a.req_degree from v$pe_session a, v$session b where a.sid = b.sid order by a.qcsid, stmt_level desc;
SQL
복사

세션의 병렬 수행 상태 정보

병렬 수행이 가능한지, 실제 수행되고 있는지 등은 v$session의 아래 컬럼들을 통해 확인할 수 있습니다.
컬럼
설명
PDML_STATUS
해당 세션의 현재 parallel DML의 상태를 보여줍니다.
PDDL_STATUS
해당 세션의 현재 parallel DDL의 상태를 보여줍니다.
PQ_STATUS
해당 세션의 현재 parallel Query의 상태를 보여줍니다.
해당 컬럼은 DISABLE, ENABLE, FORCE의 값으로 설정이 가능합니다.
ENABLE : 힌트나 오브젝트에 병렬 Degree가 설정된 경우에 병렬문을 수행합니다.
DISABLE : 힌트나 오브젝트에 PARALLEL 절로 Degree를 정한 경우에도 병렬문을 사용할 수 없습니다.
FORCE : 해당 SQL문에 강제로 병렬문을 수행합니다.
참고
PQ Sessions → parallel에 사용되는 slave 세션도 v$session을 통해 조회할 수 있으며, QC(Query Coordinator)와 동일한 SQL_ID를 가지고 있습니다. (PROG_NAME에는 PE_SLAVE로 표시됩니다.)
관련 뷰: v$pe_pesplan, v$pe_pesstat, v$pe_session, v$pe_tqstat