메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
(새 문서: == Oracle Real-time SQL Monitoring (오라클 실시간 SQL 모니터링) == * Oracle Real-time SQL Monitoring은 SQL 쿼리 실행 중 성능을 **실시간으로 모니터링**하고 분석하는 강력한 도구입니다. 복잡하고 시간이 오래 걸리는 쿼리의 실행 계획, I/O, CPU, 대기 시간 등 상세한 성능 지표를 즉각적으로 보여주어 성능 문제를 신속하게 파악하고 해결하는 데 도움을 줍니다. ----- ### 주요 기능...)
 
편집 요약 없음
 
(같은 사용자의 중간 판 5개는 보이지 않습니다)
1번째 줄: 1번째 줄:
== Oracle Real-time SQL Monitoring (오라클 실시간 SQL 모니터링) ==
== Oracle Real-time SQL Monitoring (오라클 실시간 SQL 모니터링) ==
*
{{틀:서브
Oracle Real-time SQL Monitoring은 SQL 쿼리 실행 중 성능을 **실시간으로 모니터링**하고 분석하는 강력한 도구입니다. 복잡하고 시간이 오래 걸리는 쿼리의 실행 계획, I/O, CPU, 대기 시간 등 상세한 성능 지표를 즉각적으로 보여주어 성능 문제를 신속하게 파악하고 해결하는 데 도움을 줍니다.
|제목=''' <big>Oracle Real-time SQL Monitoring은 SQL 쿼리 실행 중 성능을 실시간으로 모니터링하고 분석하는 강력한 도구</big>'''
* 주요 기능 및 특징
** 실시간 모니터링 : 쿼리가 실행되는 동안 진행 상태와 각 단계의 성능 지표를 실시간으로 확인.
** 세부 실행 계획 : 전체 쿼리 실행 계획뿐만 아니라, 각 오퍼레이션(테이블 스캔, 조인 등)이 얼마나 많은 행을 처리하고 어떤 자원을 사용했는지 정확한 데이터를 제공.
** 자원 사용량 분석 : CPU, I/O, 메모리 사용량, 대기 이벤트(wait events)를 실시간으로 추적하여 병목 현상의 원인을 쉽게 찾을 수 있음.
** 자동 활성화 : 기본적으로 실행 시간이 길거나 병렬로 실행되는 SQL 쿼리는 자동으로 모니터링 대상이 됩니다. `_sqlmon_threshold` 파라미터로 제어.
|내용= ''' <big>복잡하고 시간이 오래 걸리는 쿼리의 실행 계획, I/O, CPU, 대기 시간 등 상세한 성능 지표를 즉각적으로 보여주어 성능 문제를 신속하게 파악하고 해결</big>'''
}}


-----


### 주요 기능 및 특징
=== 사용 방법 ===
*  Real-time SQL Monitoring은 주로 AWR(Automatic Workload Repository) 리포트나 SQL Developer와 같은 GUI 도구를 통해 사용합니다.


  * **실시간 모니터링**: 쿼리가 실행되는 동안 진행 상태와 각 단계의 성능 지표를 실시간으로 확인할 수 있습니다.
==== 방법1) SQL Developer/SQL Developer Web 사용 ====
  * **세부 실행 계획**: 전체 쿼리 실행 계획뿐만 아니라, 각 오퍼레이션(테이블 스캔, 조인 )이 얼마나 많은 행을 처리하고 어떤 자원을 사용했는지 정확한 데이터를 제공합니다.
# SQL Developer에 접속하여 원하는 SQL 쿼리를 실행.
  * **자원 사용량 분석**: CPU, I/O, 메모리 사용량, 대기 이벤트(wait events)를 실시간으로 추적하여 병목 현상의 원인을 쉽게 찾을 수 있습니다.
# 쿼리가 실행되는 동안 'SQL Monitor' 탭에서 실시간으로 성능을 모니터링할 수 있습니다.
  * **자동 활성화**: 기본적으로 실행 시간이 길거나 병렬로 실행되는 SQL 쿼리는 자동으로 모니터링 대상이 됩니다. 이는 `_sqlmon_threshold` 파라미터로 제어할 수 있습니다.
# 쿼리가 완료되면 'Summary', 'Plan Statistics', 'Activity' 다양한 탭을 통해 상세 분석 리포트를 확인할 수 있습니다.


-----
==== 방법2) SQLplus/오렌지/토드/SQL Developer Web에서 수동으로 리포트 생성 ====
 
* SQL 쿼리 ID(SQL_ID)를 사용하여 SQL Monitoring 리포트를 수동으로 생성할 수 있습니다.  
### 사용 방법
* 이는 자동 모니터링 대상이 아닌 짧은 쿼리나 특정 쿼리의 성능을 분석할 때 유용합니다.
 
# 모니터링 대상 SQL_ID 찾기
Real-time SQL Monitoring은 주로 AWR(Automatic Workload Repository) 리포트나 SQL Developer와 같은 GUI 도구를 통해 사용합니다.
#:<source lang=sql>
 
SELECT SQL_ID FROM V$SQL WHERE sql_text LIKE '%YOUR_QUERY_TEXT%';
#### **1. SQL Developer/SQL Developer Web 사용**
</source>
 
# SQL Monitoring 리포트 생성
가장 직관적인 방법입니다.
#:* DBMS_SQLTUNE.REPORT_SQL_MONITOR 함수를 사용합니다.
 
#:<source lang=sql>
1.  SQL Developer에 접속하여 원하는 SQL 쿼리를 실행합니다.
2.  쿼리가 실행되는 동안 'SQL Monitor' 탭에서 실시간으로 성능을 모니터링할 수 있습니다.
3.  쿼리가 완료되면 'Summary', 'Plan Statistics', 'Activity' 등 다양한 탭을 통해 상세 분석 리포트를 확인할 수 있습니다.
 
#### **2. SQLplus 또는 SQL Developer Web에서 수동으로 리포트 생성**
 
SQL 쿼리 ID(SQL\_ID)를 사용하여 SQL Monitoring 리포트를 수동으로 생성할 수 있습니다. 이는 자동 모니터링 대상이 아닌 짧은 쿼리나 특정 쿼리의 성능을 분석할 때 유용합니다.
 
1.  **모니터링 대상 SQL\_ID 찾기**
 
    ```sql
    SELECT SQL_ID FROM V$SQL WHERE sql_text LIKE '%YOUR_QUERY_TEXT%';
    ```
 
2.  **SQL Monitoring 리포트 생성**
    `DBMS_SQLTUNE.REPORT_SQL_MONITOR` 함수를 사용합니다.
 
    ```sql
     -- HTML 형식의 리포트 생성
     -- HTML 형식의 리포트 생성
     SET LONG 2000000
     -- SET LONG 2000000
     SET PAGESIZE 1000
     -- SET PAGESIZE 1000
     SET LINESIZE 250
     -- SET LINESIZE 250
     SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(sql_id => 'YOUR_SQL_ID') FROM DUAL;
     SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(sql_id => 'YOUR_SQL_ID') FROM DUAL;
 
</source>
#:<source lang=sql>
     -- TXT 형식의 리포트 생성
     -- TXT 형식의 리포트 생성
     SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(
     SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(
51번째 줄: 41번째 줄:
         type => 'TEXT',
         type => 'TEXT',
         report_level => 'ALL') FROM DUAL;
         report_level => 'ALL') FROM DUAL;
    ```
</source>
#:* sql_id : 모니터링할 쿼리의 고유 ID입니다.
#:* type : 리포트의 형식을 지정합니다 (`HTML`, `TEXT`, `XML`). `HTML`이 가장 시각적으로 보기 좋습니다.
#:* report_level: 리포트의 상세 수준을 지정합니다 (`BASIC`, `TYPICAL`, `ALL`). `ALL`을 사용하면 가장 상세한 정보를 얻을 수 있습니다.
#:* html 타입 예시
#:** https://bass4th.files.wordpress.com/2023/11/sqlmonhtmlpng.png
==== 방법3) /*+ MONITOR */ SQL 힌트 사용 ====
* 특정 쿼리를 강제로 모니터링 대상에 포함시키려면 `MONITOR` 힌트를 사용합니다.


      * **`sql_id`**: 모니터링할 쿼리의 고유 ID입니다.
<source lang=sql>
      * **`type`**: 리포트의 형식을 지정합니다 (`HTML`, `TEXT`, `XML`). `HTML`이 가장 시각적으로 보기 좋습니다.
SELECT /*+ MONITOR */ * FROM employees WHERE hire_date < SYSDATE;
      * **`report_level`**: 리포트의 상세 수준을 지정합니다 (`BASIC`, `TYPICAL`, `ALL`). `ALL`을 사용하면 가장 상세한 정보를 얻을 수 있습니다.
</source>
 
#### **3. SQL 힌트 사용**
 
특정 쿼리를 강제로 모니터링 대상에 포함시키려면 `MONITOR` 힌트를 사용합니다.


```sql
SELECT /*+ MONITOR */ * FROM employees WHERE hire_date < SYSDATE;
```


**참고**: Real-time SQL Monitoring은 Oracle Enterprise Edition에서만 제공되는 기능이며, Diagnostics Pack 라이선스가 필요합니다.
* 참고 : Real-time SQL Monitoring은 Oracle Enterprise Edition에서만 제공되는 기능이며, Diagnostics Pack 라이선스가 필요합니다.
[[category:oracle]]

2025년 8월 25일 (월) 13:34 기준 최신판

Oracle Real-time SQL Monitoring (오라클 실시간 SQL 모니터링)

    Oracle Real-time SQL Monitoring은 SQL 쿼리 실행 중 성능을 실시간으로 모니터링하고 분석하는 강력한 도구
  • 주요 기능 및 특징
    • 실시간 모니터링 : 쿼리가 실행되는 동안 진행 상태와 각 단계의 성능 지표를 실시간으로 확인.
    • 세부 실행 계획 : 전체 쿼리 실행 계획뿐만 아니라, 각 오퍼레이션(테이블 스캔, 조인 등)이 얼마나 많은 행을 처리하고 어떤 자원을 사용했는지 정확한 데이터를 제공.
    • 자원 사용량 분석 : CPU, I/O, 메모리 사용량, 대기 이벤트(wait events)를 실시간으로 추적하여 병목 현상의 원인을 쉽게 찾을 수 있음.
    • 자동 활성화 : 기본적으로 실행 시간이 길거나 병렬로 실행되는 SQL 쿼리는 자동으로 모니터링 대상이 됩니다. `_sqlmon_threshold` 파라미터로 제어.
    복잡하고 시간이 오래 걸리는 쿼리의 실행 계획, I/O, CPU, 대기 시간 등 상세한 성능 지표를 즉각적으로 보여주어 성능 문제를 신속하게 파악하고 해결


사용 방법

  • Real-time SQL Monitoring은 주로 AWR(Automatic Workload Repository) 리포트나 SQL Developer와 같은 GUI 도구를 통해 사용합니다.

방법1) SQL Developer/SQL Developer Web 사용

  1. SQL Developer에 접속하여 원하는 SQL 쿼리를 실행.
  2. 쿼리가 실행되는 동안 'SQL Monitor' 탭에서 실시간으로 성능을 모니터링할 수 있습니다.
  3. 쿼리가 완료되면 'Summary', 'Plan Statistics', 'Activity' 등 다양한 탭을 통해 상세 분석 리포트를 확인할 수 있습니다.

방법2) SQLplus/오렌지/토드/SQL Developer Web에서 수동으로 리포트 생성

  • SQL 쿼리 ID(SQL_ID)를 사용하여 SQL Monitoring 리포트를 수동으로 생성할 수 있습니다.
  • 이는 자동 모니터링 대상이 아닌 짧은 쿼리나 특정 쿼리의 성능을 분석할 때 유용합니다.
  1. 모니터링 대상 SQL_ID 찾기
    SELECT SQL_ID FROM V$SQL WHERE sql_text LIKE '%YOUR_QUERY_TEXT%';
  2. SQL Monitoring 리포트 생성
    • DBMS_SQLTUNE.REPORT_SQL_MONITOR 함수를 사용합니다.
        -- HTML 형식의 리포트 생성
        -- SET LONG 2000000
        -- SET PAGESIZE 1000
        -- SET LINESIZE 250
        SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(sql_id => 'YOUR_SQL_ID') FROM DUAL;
        -- TXT 형식의 리포트 생성
        SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(
            sql_id => 'YOUR_SQL_ID',
            type => 'TEXT',
            report_level => 'ALL') FROM DUAL;
    • sql_id : 모니터링할 쿼리의 고유 ID입니다.
    • type : 리포트의 형식을 지정합니다 (`HTML`, `TEXT`, `XML`). `HTML`이 가장 시각적으로 보기 좋습니다.
    • report_level: 리포트의 상세 수준을 지정합니다 (`BASIC`, `TYPICAL`, `ALL`). `ALL`을 사용하면 가장 상세한 정보를 얻을 수 있습니다.
    • html 타입 예시
      • sqlmonhtmlpng.png

방법3) /*+ MONITOR */ SQL 힌트 사용

  • 특정 쿼리를 강제로 모니터링 대상에 포함시키려면 `MONITOR` 힌트를 사용합니다.
SELECT /*+ MONITOR */ * FROM employees WHERE hire_date < SYSDATE;


  • 참고 : Real-time SQL Monitoring은 Oracle Enterprise Edition에서만 제공되는 기능이며, Diagnostics Pack 라이선스가 필요합니다.