반응형

2018/09 3

Real-Time SQL Monitoring - v$sql_plan_mointor 조회하기 (V2)

이전 글 Real-Time SQL Monitoring - v$sql_plan_mointor 조회하기 ( http://overoid.tistory.com/40?category=357137 ) 에서 사용된 SQL의 경우. LONG SQL 수행 후 문제가 있어 중지하고, 재 수행했다면... 이전에 수행했던 실행계획이 겹쳐서 나오는 단점이 있다.대신 쿼리가 심플하고 Version 2에 비해서 조회 성능이 더 우수하다. Version 1의 중복 이슈를 해결한 Ver2 - v$sql_plan_mointor 조회 쿼리. WITH SQL_PLAN_INF AS ( SELECT /*+ materialize ordered */ SQL_ID, PLAN_LINE_ID, STATUS, PROCESS_NAME, PLAN_DEPTH..

DBMS/Oracle 2018.09.08

Real-Time SQL Monitoring - v$sql_plan_mointor 조회하기

오래동안 수행되는 SQL이 얼마나 진행되었는지 알 수 있을까?예상실행계획으로 확인된 실행계획 그대로 수행되고 있는지를 쿼리 수행중에 확인할 수 있을까? 수억에서 수십, 수백억 레코드를 조인하여 처리하는데.. 언제 끝날지 모른다면 정말로 답답하다. 수분에서 수십, 수백분이 소요되는 SQL 대량 작업의 경우 잘못된 실행계획으로 쿼리가 실행되고 있다는 것을 실행 초반에 알 수 있다면, SQL을 중지하고 수정하여 재실행함으로써 소중한 시간을 아끼고 일찍 퇴근할 수도 있을것이다. 다행히 오라클에서는 11g부터 Real-Time SQL Monitoring 기능을 제공한다.물론 쿼리가 수행완료된 이후 dbms_sqltune.report_sql_monitor 로 레포팅을 뽑아 결과를 확인할 수 도 있지만, 실행중에도 ..

DBMS/Oracle 2018.09.08

Real-Time SQL Monitoring 제한(limit)

Real-Time SQL Monitoring(v$sql_mointor, v$sql_plan_mointor)은 Oracle 11g에서 추가된 기능으로 아래 조건에서 모니터링 된다. 실행시간이 5초 ( '_sqlmon_threshold' 히든 파라미터로 조정)이상 느린 쿼리의 실행이력병렬 쿼리의 실행 이력monitor 힌트를 사용한 쿼리에 대한 추적 위 조건을 만족하는데도 모니터링 되지 않는 다면????, v$sql_monitor에 나타나지 않는다면???? 만일, 모니터링 하는 SQL 문장의 실행계획 라인수가 300 라인이 넘는 복잡한 쿼리는 모니터링에서 누락된다. 오라클 히든 파라미터 중 '_sqlmon_max_planlines'=300 으로 초기 설정되어 있다.이 값을 늘리면 문제 해결!!! SQL> a..

DBMS/Oracle 2018.09.06
반응형