Oracle

게시글 보기
작성자 유건데이타 등록일 2015-06-22
제목 LONG RUNNING OPERATION의 진행상태 확인방법
LONG RUNNING OPERATION의 진행상태 확인방법
==========================================

Oracle 8.0 부터 제공되고 있는 v$session_longops 는 단일 long running
operation에 대한 진행 상태를 operatoin별로 제공해 주는 view로 DSS, DW와
같은 long running job이 많은 system에서는 유용한 정보를 확인할 수 있는
table이다.

다음의 test는 oracle 8.1.6에서 이루어졌으며 v$session_longops
view는 oracle 8.0.x과 8.1.x에서 structure 상 조금의 차이가 있음을 미리
알려둔다.

Oracle 8i에서 이 dynamic view에서 다루어지는 operation들에는 다음의
것들이 있다.

Operation Description
------------------------------ -------------
Archiving (1)
Rman Backup and Restore
Parallel Query
Recovery ( Crash and Media )
Full Table scans (2)
Sorting
Analyze using DBMS_STATS Not seen yet
Hash Cluster Creation " " "
Hash Joins Phase 2 " " "

(1) : document로는 제공이 되고 있는 것으로 되어 있으나 아직 구현되지
않음
(2) : 10000 blocks 이상의 full table scan을 long operation으로 간주한다.


V$SESSION_LONGOPS COLUMNS

COLUMN DESCRIPTION
------ --------------------------------------------------
SID Session identifier
SERIAL# Session serial number
OPNAME The operation name
TARGET The object on which the operation is carried out
TARGET_DESC Description of the target
SOFAR The units of work done so far
TOTALWORK The total units of work
UNITS The units of measurement
START_TIME The starting time of operation
LAST_UPDATE_TIME Time when statistics last updated
ELAPSED_SECONDS The number of elapsed seconds from the start of
operations
CONTEXT Context
MESSAGE Statistics summary message




### SESSION A ###

SQL> select userenv('sessionid') from dual;
USERENV('SESSIONID')
--------------------
31948
SQL> SELECT COUNT(*) FROM PARTTAB;
--> waitting . . .


### SESSION B ###

SQL> connect internal
SQL> select opname, time_remaining, sofar, totalwork, message
2> from v$session_longops
3> where sid = 110 and time_remaining > 0;

OPNAME TIME_REMAINING
------------- ---------------------------------------------------
SOFAR TOTALWORK MESSAGE
---------- ---------- -------------------------------------------
Table Scan 138
75332 341590 Table Scan: SCOTT.PARTTAB: 75332 out of 341590
Blocks done

==> operation의 진행율이 약 22%로 138초가 남았음을 보여준다.

SQL> r


OPNAME TIME_REMAINING
------------- ---------------------------------------------------
SOFAR TOTALWORK MESSAGE
---------- ---------- -------------------------------------------
Table Scan 50
242846 341590 Table Scan: SCOTT.PARTTAB: 242846 out of 341590
Blocks done

==> operation의 진행율이 약 71% 로 약 50초가 남았음을 보여준다.

SQL> r

OPNAME TIME_REMAINING
------------- ---------------------------------------------------
SOFAR TOTALWORK MESSAGE
---------- ---------- -------------------------------------------
Table Scan 115
93889 324446 Table Scan: SCOTT.PARTTAB: 93889 out of 324446
Blocks done

==> TOTALWORK가 변한것으로 보아 다른 partition에 대한 full table scan이
진행중임을 알수 있다.

% v$session_longops에는 이미 종료되거나 취소된 operation들에 대한 정보가
남아 있게 되므로 active operation인지 먼저 확인해야한다.
Comment
등록된 코멘트가 없습니다.