Oracle RMAN FULL BACKUP 스크립트




rman target /

sql 'alter system archive log current';

sql "alter session set nls_date_format=''dd.mm.yyyy hh24:mi:ss''";

RUN

{

configure controlfile autobackup on;

set command id to 'ORCLOnlineBackupFull';

ALLOCATE CHANNEL c1 DEVICE TYPE disk;

ALLOCATE CHANNEL c2 DEVICE TYPE disk;

ALLOCATE CHANNEL c3 DEVICE TYPE disk;

ALLOCATE CHANNEL c4 DEVICE TYPE disk;

backup AS COMPRESSED BACKUPSET full database tag ORCL_FULL format '/backup/rman/data/%d_%T_%s_%p_FULL' ;

sql 'alter system archive log current';

backup tag ORCL_ARCHIVE format '/backup/rman/archive/%d_%T_%s_%p_ARCHIVE' archivelog all delete all input ;

backup tag ORCL_CONTROL current controlfile format '/backup/rman/control/%d_%T_%s_%p_CONTROL';

release channel c1;

release channel c2;

release channel c3;

release channel c4;

}



블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,

OSI 7 Layer (Open System Interconnection)



1. OSI 7 Layer의 개요

 1-1. 정의

 - 국제표준기구(OSI)에서 제정한 네트워크 통신규격 표준화를 위한 규격

 - 개방형 시스템의 상호접속하기 위한 참조모델이며, 이기종 시스템간 연결 및 정보 교환을 위한 표준화된 절차


 1-2. 특징

 - 기능을 Layer로 나눔으로 써 각 Layer의 변경에 있어 다른 Layer에 영향을 주지 않음

 - 실제 구현에 대한 언급이 없음


 2. OSI 7 Layer의 계층구조 및 기능

 2-1. OSI 7 Layer의 계층구조

 2-2. OSI 7 Layer의 계층별 기능

 - 상위 계층:

   1) Application : 최상위 계층으로 통신망에서 연결된 응용 프로세스들의 정보 교환이 되는 계층

   2) Presentation : 응용 프로그램 사이에서 서로 다른 정보의 형식과 설정, 암호 등을 해독하여 서로 연결 가능하도록 지원

   3) Session : 두 프로세스 사이에 데이터가 흐를 수 있는 가상 경로의 확립이나, 해제를 수행

   4) Transport : 링크 종점간의 정확한 데이터 전송을 제공


 - 하위 계층:

   1) Network : 단말간의 시스템끼리 Data를 전송하기 위한 최선의 통신경로 선택을 제공

   2) Data Link : 물리계층에서 사용하는 통신매체를 통해 데이터 블록의 전송 에러 검출 및 에러 제어를 관리한고 규정

   3) Physical :  장치간의 물리적 접속을 제어하기 위한 기능 제공


 2-3. OSI 7 Layer 계층별 프로토콜

   1) Application : FTP, POP, SMTP, Telnet, DNS 등

   2) Presentation : JPEG, MPEG, SMB 등

   3) Session : SSH, TLS 등

   4) Transport : TCP, UDP

   5) Network : IP (Internet Protocol), ICMP, IGMP

   6) Data Link : MAC, LLC, PPP

   7) Physical : CSMA/CD, RS_232C


3. OSI 모델과 TCP/IP의 비교


 - 실제 인터넷에서 사용되는 TCP/IP는 OSI 7 Layer를 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화된 현실화의  과정에서 채택된 모형


블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,

클라우드 컴퓨팅(Cloud Computing)



1. 클라우드 컴퓨팅(Cloud Computing) 의 개요

 1-1. 정의

 - 인터넷 기술을 활용하여 다수의 고객들에게 높은 수준의 확장성을 가진 IT 자원들을 '서비스'로 제공하는 컴퓨팅

 - 거대한 IT 자원을 추상화, 가상화하여 동적 확장이 가능한 체계로 사용자가 필요한 만큼 네트워크를 통해 사용하는 컴퓨팅 서비스 환경


 1-2. 배경

 - 도입 니즈 증가: 기업들의 HW, SW 구매비용 절감 욕구 및 방대한 데이터 처리를 요구하는 Application의 수요증가

 - 기술의 발전 : 네트워크 고도화와 가상화와 같은 SW기술이 발전되면서 광법위한 분야의 SW와 IT 자원들이 인터넷을 통해 제공 될수 있는 환경 마련

 - 컴플라이언스 : 지구 온실가스 감축 의무에 따른 그린 IT에 대한 인식의 확산


2. 클라우드 컴퓨팅(Cloud Computing) 구성 및 구성요소

 2-1. 클라우드 컴퓨팅 구성

           - 사용자가 웹으로 서비스 요청시 프로비저닝 툴을 이용하여 자원을 가상화 및 분배하여 제공

 2-2. 클라우드 컴퓨팅의 구성요소

 1) User Interaction Interface : 클라우드 사용자와 클라우드간의 인터페이스

 2) Services catalog : 사용자가 요청할 수 있는 서비스의 리스트

 3) System Management : 사용 가능한 컴퓨터 리소스를 관리하기 위한 부분

 4) Provisioning tool : 사용자가 요청한 서비스를 수행하기 위해 클라우드로부터 컴퓨터 자원을 잘라내어 할당

 5) Monitoring and metering : 컴퓨터 자원이 특정한 사용자에게 할당되어 사용되는지에 대한 클라우드 전반의 트래킹 시스템 

 6) Servers : 시스템 관리툴에 의해 관리되며 가상 또는 실제 서버가 될 수 있음


 2-3. 클라우드 컴퓨팅의 서비스 유형

 - 인프라 서비스 모델: Public Cloud(일반), Private Cloud(내부), Hybrid Cloud(일반/내부 결합)

 - 서비스 종류 : 

 1) Saas(Software as a Service) : 응용 SW를 서비스로 제공

 2) PaaS(Platform as a Service) : SW 개발 환경을 서비스로 제공

 3) IaaS(Infrastructure as a Service) : 서버 인프라(CPU, Disk 등)를 서비스로 제공


3. 클라우드 컴퓨팅(Cloud Computing)의 적용시 고려사항

 - 데이터보안: 온라인을 통한 데이터 공유가 용이해진 만큼 해킹이나 악성코드에 대한 취약점이 존재

 - 서비스 신뢰: 아웃소싱 사업자에 의한 데이터가 관리되므로 민감한 정보 저장에 대해서는 클라우드 컴퓨팅 활용이 기피될 수 있음

 - 데이터 소유권 및 지적 재산권: 클라우드 컴퓨팅 서비스 제공자가 변경되거나 사업을 포기할 경우 데이터 소유권과 관련된 분쟁 발생가능성이 존재

 - 잠금 효과: 대용량의 데이터를 이전하는데 많은 비용이 소요될 수 있기 때문에 클라우드 사업자의 변경이 용이하지 않을 수 있음


블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,

Oracle SQL Stat 조회 스크립트



WITH A

     AS (  SELECT /*+ MATERIALIZE LEADING(DBI SNAP) USE_HASH(SQLS TXT) NO_MERGE(SQLS) NO_MERGE(TXT) */

                 SQLS.DBID,

                  SQLS.SQL_ID,

                  SQLS.OPTIMIZER_MODE,

                  SQLS.MODULE,

                  SUM (SQLS.FETCHES_DELTA) FETCHES,

                  SUM (SQLS.EXECUTIONS_DELTA) EXECUTIONS,

                  SUM (SQLS.SORTS_DELTA) SORTS,

                  SUM (SQLS.DISK_READS_DELTA) DISK_READS,

                  SUM (SQLS.BUFFER_GETS_DELTA) BUFFER_GETS,

                  SUM (SQLS.ROWS_PROCESSED_DELTA) ROWS_PROCESSED,

                  SUM (SQLS.CPU_TIME_DELTA) / 1000000 CPU_TIME,

                  SUM (SQLS.ELAPSED_TIME_DELTA) / 1000000 ELAPSED_TIME,

                  SUM (SQLS.IOWAIT_DELTA) / 1000000 IOWAIT,

                  SUM (SQLS.CLWAIT_DELTA) / 1000000 CLWAIT,

                  SUM (SQLS.APWAIT_DELTA) / 1000000 APWAIT,

                  SUM (SQLS.CCWAIT_DELTA) / 1000000 CCWAIT,

                  SUM (DIRECT_WRITES_DELTA) DIRECT_WRITES,

                  NULL RNUM

             FROM (SELECT DI.DBID, DI.INSTANCE_NUMBER, DI.STARTUP_TIME

                     FROM DBA_HIST_DATABASE_INSTANCE DI

                    WHERE DI.DBID = (SELECT dbid FROM v$database)         --변경

                          AND DI.INSTANCE_NUMBER =

                                 (SELECT INSTANCE_NUMBER FROM v$instance) --변경

                          AND ROWNUM <= 1) DBI,

                  DBA_HIST_SNAPSHOT SNAP,

                  DBA_HIST_SQLSTAT SQLS

            WHERE     DBI.DBID = SNAP.DBID

                  AND DBI.INSTANCE_NUMBER = SNAP.INSTANCE_NUMBER

                  AND SNAP.SNAP_ID >= :3 + 1

                  AND SNAP.SNAP_ID <= :4

                  AND SNAP.DBID = SQLS.DBID

                  AND SNAP.INSTANCE_NUMBER = SQLS.INSTANCE_NUMBER

                  AND SNAP.SNAP_ID = SQLS.SNAP_ID

         GROUP BY SQLS.DBID,

                  SQLS.SQL_ID,

                  SQLS.OPTIMIZER_MODE,

                  SQLS.MODULE

           HAVING SUM (SQLS.EXECUTIONS_DELTA) > 0),

     A_TOT

     AS (SELECT 0 DBID,

                'TOT' SQL_ID,

                NULL OPTIMIZER_MODE,

                NULL MODULE,

                MAX (STAT.EXECUTIONS) EXECUTIONS,

                SUM (A.FETCHES) FETCHES,

                (MAX (STAT.SORTS_D) + MAX (STAT.SORTS_M)) SORTS,

                MAX (STAT.BUFFER_GETS) BUFFER_GETS,

                MAX (STAT.DISK_READS) DISK_READS,

                SUM (A.ROWS_PROCESSED) ROWS_PROCESSED,

                MAX (TIME.DB_CPU) CPU_TIME,

                MAX (TIME.DB_TIME) ELAPSED_TIME,

                MAX (STAT.BUFFER_GETS) / MAX (STAT.EXECUTIONS) BUF_EXEC,

                MAX (STAT.DISK_READS) / MAX (STAT.EXECUTIONS) DISK_EXEC,

                SUM (A.ROWS_PROCESSED) / SUM (A.EXECUTIONS) ROWS_EXEC,

                MAX (TIME.DB_CPU) / MAX (STAT.EXECUTIONS) CPU_EXEC,

                MAX (TIME.DB_TIME) / MAX (STAT.EXECUTIONS) ELAP_EXEC,

                MAX (STAT.IOWAIT) IOWAIT,

                MAX (STAT.CLWAIT) CLWAIT,

                MAX (STAT.APWAIT) APWAIT,

                MAX (STAT.CCWAIT) CCWAIT,

                COUNT (DISTINCT SQL_ID) RNUM

           FROM A,

                (SELECT MAX (DECODE (STAT_NAME, 'execute count', TOT_VALUE))

                           EXECUTIONS,

                        MAX (

                           DECODE (STAT_NAME,

                                   'session logical reads', TOT_VALUE))

                           BUFFER_GETS,

                        MAX (DECODE (STAT_NAME, 'physical reads', TOT_VALUE))

                           DISK_READS,

                        MAX (DECODE (STAT_NAME, 'sorts (disk)', TOT_VALUE))

                           SORTS_D,

                        MAX (DECODE (STAT_NAME, 'sorts (memory)', TOT_VALUE))

                           SORTS_M,

                        MAX (

                           DECODE (STAT_NAME,

                                   'cluster wait time', TOT_VALUE / 100))

                           CLWAIT,

                        MAX (

                           DECODE (STAT_NAME,

                                   'application wait time', TOT_VALUE / 100))

                           APWAIT,

                        MAX (

                           DECODE (STAT_NAME,

                                   'concurrency wait time', TOT_VALUE / 100))

                           CCWAIT,

                        MAX (

                           DECODE (STAT_NAME,

                                   'user I/O wait time', TOT_VALUE / 100))

                           IOWAIT

                   FROM (  SELECT STAT_NAME, SUM (TOT_VALUE) TOT_VALUE

                             FROM (SELECT STAT_NAME,

                                          TO_CHAR (SNAP_TIME_1, 'HH24:MI:SS')

                                             SNAP_TIME,

                                          DECODE (SNAP_TIME_2,

                                                  NULL, 0,

                                                  ROUND ( (VALUE_1 - VALUE_2)))

                                             TOT_VALUE,

                                          (EXTRACT (

                                              DAY FROM SNAP_TIME_1

                                                       - SNAP_TIME_2)

                                           * 86400

                                           + EXTRACT (

                                                HOUR FROM SNAP_TIME_1

                                                          - SNAP_TIME_2)

                                             * 3600

                                           + EXTRACT (

                                                MINUTE FROM SNAP_TIME_1

                                                            - SNAP_TIME_2)

                                             * 60

                                           + EXTRACT (

                                                SECOND FROM SNAP_TIME_1

                                                            - SNAP_TIME_2))

                                             TOT_TIME_SEC

                                     FROM (  SELECT /*+ LEADING(DBI) USE_HASH(SNAP STAT) NO_MERGE(SNAP) NO_MERGE(STAT) */

                                                   SNAP.END_INTERVAL_TIME

                                                       SNAP_TIME_1,

                                                    STAT.STAT_NAME,

                                                    STAT.VALUE VALUE_1,

                                                    LAG (

                                                       STAT.VALUE)

                                                    OVER (PARTITION BY STAT_NAME

                                                          ORDER BY SNAP.SNAP_ID)

                                                       VALUE_2,

                                                    LAG (

                                                       SNAP.END_INTERVAL_TIME)

                                                    OVER (PARTITION BY STAT_NAME

                                                          ORDER BY SNAP.SNAP_ID)

                                                       SNAP_TIME_2,

                                                    SNAP.SNAP_ID

                                               FROM (SELECT    /*+ NO_MERGE */

                                                           DI.DBID,

                                                            DI.INSTANCE_NUMBER,

                                                            DI.STARTUP_TIME

                                                       FROM DBA_HIST_DATABASE_INSTANCE DI

                                                      WHERE DI.DBID =

                                                               (SELECT dbid

                                                                  FROM v$database) --변경

                                                            AND DI.INSTANCE_NUMBER =

                                                                   (SELECT INSTANCE_NUMBER

                                                                      FROM v$instance) --변경

                                                            AND ROWNUM <= 1) DBI,

                                                    DBA_HIST_SNAPSHOT SNAP,

                                                    DBA_HIST_SYSSTAT STAT

                                              WHERE DBI.DBID = SNAP.DBID

                                                    AND DBI.INSTANCE_NUMBER =

                                                           SNAP.INSTANCE_NUMBER

                                                    AND SNAP.SNAP_ID >= :7

                                                    AND SNAP.SNAP_ID <= :8

                                                    AND SNAP.DBID = STAT.DBID

                                                    AND SNAP.INSTANCE_NUMBER =

                                                           STAT.INSTANCE_NUMBER

                                                    AND SNAP.SNAP_ID =

                                                           STAT.SNAP_ID

                                                    AND STAT.STAT_NAME IN

                                                           ('execute count',

                                                            'session logical reads',

                                                            'sorts (disk)',

                                                            'sorts (memory)',

                                                            'physical reads',

                                                            'cluster wait time',

                                                            'application wait time',

                                                            'user I/O wait time',

                                                            'concurrency wait time')

                                           ORDER BY SNAP.SNAP_ID))

                         GROUP BY STAT_NAME)) STAT,

                (SELECT MAX (

                           DECODE (STAT_NAME, 'DB CPU', TOT_VALUE / 1000000))

                           DB_CPU,

                        MAX (

                           DECODE (STAT_NAME, 'DB time', TOT_VALUE / 1000000))

                           DB_TIME

                   FROM (  SELECT STAT_NAME, SUM (TOT_VALUE) TOT_VALUE

                             FROM (SELECT STAT_NAME,

                                          TO_CHAR (SNAP_TIME_1, 'HH24:MI:SS')

                                             SNAP_TIME,

                                          DECODE (SNAP_TIME_2,

                                                  NULL, 0,

                                                  ROUND ( (VALUE_1 - VALUE_2)))

                                             TOT_VALUE,

                                          (EXTRACT (

                                              DAY FROM SNAP_TIME_1

                                                       - SNAP_TIME_2)

                                           * 86400

                                           + EXTRACT (

                                                HOUR FROM SNAP_TIME_1

                                                          - SNAP_TIME_2)

                                             * 3600

                                           + EXTRACT (

                                                MINUTE FROM SNAP_TIME_1

                                                            - SNAP_TIME_2)

                                             * 60

                                           + EXTRACT (

                                                SECOND FROM SNAP_TIME_1

                                                            - SNAP_TIME_2))

                                             TOT_TIME_SEC

                                     FROM (  SELECT /*+ LEADING(DBI) USE_HASH(SNAP STAT) NO_MERGE(SNAP) NO_MERGE(STAT) */

                                                   SNAP.END_INTERVAL_TIME

                                                       SNAP_TIME_1,

                                                    STAT.STAT_NAME,

                                                    STAT.VALUE VALUE_1,

                                                    LAG (

                                                       STAT.VALUE)

                                                    OVER (PARTITION BY STAT_NAME

                                                          ORDER BY SNAP.SNAP_ID)

                                                       VALUE_2,

                                                    LAG (

                                                       SNAP.END_INTERVAL_TIME)

                                                    OVER (PARTITION BY STAT_NAME

                                                          ORDER BY SNAP.SNAP_ID)

                                                       SNAP_TIME_2,

                                                    SNAP.SNAP_ID

                                               FROM (SELECT    /*+ NO_MERGE */

                                                           DI.DBID,

                                                            DI.INSTANCE_NUMBER,

                                                            DI.STARTUP_TIME

                                                       FROM DBA_HIST_DATABASE_INSTANCE DI

                                                      WHERE DI.DBID =

                                                               (SELECT dbid

                                                                  FROM v$database) --변경

                                                            AND DI.INSTANCE_NUMBER =

                                                                   (SELECT INSTANCE_NUMBER

                                                                      FROM v$instance) --변경

                                                            AND ROWNUM <= 1) DBI,

                                                    DBA_HIST_SNAPSHOT SNAP,

                                                    DBA_HIST_SYS_TIME_MODEL STAT

                                              WHERE DBI.DBID = SNAP.DBID

                                                    AND DBI.INSTANCE_NUMBER =

                                                           SNAP.INSTANCE_NUMBER

                                                    AND SNAP.SNAP_ID >= :11

                                                    AND SNAP.SNAP_ID <= :12

                                                    AND SNAP.DBID = STAT.DBID

                                                    AND SNAP.INSTANCE_NUMBER =

                                                           STAT.INSTANCE_NUMBER

                                                    AND SNAP.SNAP_ID =

                                                           STAT.SNAP_ID

                                                    AND STAT.STAT_NAME IN

                                                           ('DB CPU', 'DB time')

                                           ORDER BY SNAP.SNAP_ID))

                         GROUP BY STAT_NAME)) TIME),

     A_ET

     AS (SELECT *

           FROM (SELECT 'ELAPSED TIME ALL' VIEWTYPE,

                        DBID,

                        SQL_ID,

                        OPTIMIZER_MODE,

                        MODULE,

                        EXECUTIONS,

                        FETCHES,

                        SORTS,

                        BUFFER_GETS,

                        DISK_READS,

                        ROWS_PROCESSED,

                        CPU_TIME,

                        ELAPSED_TIME,

                        BUFFER_GETS / EXECUTIONS BUF_EXEC,

                        DISK_READS / EXECUTIONS DISK_EXEC,

                        ROWS_PROCESSED / EXECUTIONS ROWS_EXEC,

                        CPU_TIME / EXECUTIONS CPU_EXEC,

                        ELAPSED_TIME / EXECUTIONS ELAP_EXEC,

                        IOWAIT,

                        CLWAIT,

                        APWAIT,

                        CCWAIT,

                        ROW_NUMBER ()

                        OVER (

                           ORDER BY ELAPSED_TIME DESC, CPU_TIME DESC, ROWNUM)

                           RNUM

                   FROM A

                 UNION ALL

                 SELECT 'ELAPSED TIME ALL' VIEWTYPE,

                        NULL DBID,

                        NULL SQL_ID,

                        NULL OPTIMIZER_MODE,

                        NULL MODULE,

                        NULL EXECUTIONS,

                        NULL FETCHES,

                        NULL SORTS,

                        NULL BUFFER_GETS,

                        NULL DISK_READS,

                        NULL ROWS_PROCESSED,

                        NULL CPU_TIME,

                        NULL ELAPSED_TIME,

                        NULL BUF_EXEC,

                        NULL DISK_EXEC,

                        NULL ROWS_EXEC,

                        NULL CPU_EXEC,

                        NULL ELAP_EXEC,

                        NULL IOWAIT,

                        NULL CLWAIT,

                        NULL APWAIT,

                        NULL CCWAIT,

                        NULL RNUM

                   FROM A

                  WHERE ROWNUM <= :13)

          WHERE RNUM <= :14 AND ROWNUM <= :15),

     A_CT

     AS (SELECT *

           FROM (SELECT 'CPU TIME ALL' VIEWTYPE,

                        DBID,

                        SQL_ID,

                        OPTIMIZER_MODE,

                        MODULE,

                        EXECUTIONS,

                        FETCHES,

                        SORTS,

                        BUFFER_GETS,

                        DISK_READS,

                        ROWS_PROCESSED,

                        CPU_TIME,

                        ELAPSED_TIME,

                        BUFFER_GETS / EXECUTIONS BUF_EXEC,

                        DISK_READS / EXECUTIONS DISK_EXEC,

                        ROWS_PROCESSED / EXECUTIONS ROWS_EXEC,

                        CPU_TIME / EXECUTIONS CPU_EXEC,

                        ELAPSED_TIME / EXECUTIONS ELAP_EXEC,

                        IOWAIT,

                        CLWAIT,

                        APWAIT,

                        CCWAIT,

                        ROW_NUMBER ()

                        OVER (

                           ORDER BY CPU_TIME DESC, BUFFER_GETS DESC, ROWNUM)

                           RNUM

                   FROM A

                 UNION ALL

                 SELECT 'CPU TIME ALL' VIEWTYPE,

                        NULL DBID,

                        NULL SQL_ID,

                        NULL OPTIMIZER_MODE,

                        NULL MODULE,

                        NULL EXECUTIONS,

                        NULL FETCHES,

                        NULL SORTS,

                        NULL BUFFER_GETS,

                        NULL DISK_READS,

                        NULL ROWS_PROCESSED,

                        NULL CPU_TIME,

                        NULL ELAPSED_TIME,

                        NULL BUF_EXEC,

                        NULL DISK_EXEC,

                        NULL ROWS_EXEC,

                        NULL CPU_EXEC,

                        NULL ELAP_EXEC,

                        NULL IOWAIT,

                        NULL CLWAIT,

                        NULL APWAIT,

                        NULL CCWAIT,

                        NULL RNUM

                   FROM A

                  WHERE ROWNUM <= :16)

          WHERE RNUM <= :17 AND ROWNUM <= :18),

     A_BG

     AS (SELECT *

           FROM (SELECT 'BUFFER GETS ALL' VIEWTYPE,

                        DBID,

                        SQL_ID,

                        OPTIMIZER_MODE,

                        MODULE,

                        EXECUTIONS,

                        FETCHES,

                        SORTS,

                        BUFFER_GETS,

                        DISK_READS,

                        ROWS_PROCESSED,

                        CPU_TIME,

                        ELAPSED_TIME,

                        BUFFER_GETS / EXECUTIONS BUF_EXEC,

                        DISK_READS / EXECUTIONS DISK_EXEC,

                        ROWS_PROCESSED / EXECUTIONS ROWS_EXEC,

                        CPU_TIME / EXECUTIONS CPU_EXEC,

                        ELAPSED_TIME / EXECUTIONS ELAP_EXEC,

                        IOWAIT,

                        CLWAIT,

                        APWAIT,

                        CCWAIT,

                        ROW_NUMBER ()

                        OVER (

                           ORDER BY BUFFER_GETS DESC, CPU_TIME DESC, ROWNUM)

                           RNUM

                   FROM A

                 UNION ALL

                 SELECT 'BUFFER GETS ALL' VIEWTYPE,

                        NULL DBID,

                        NULL SQL_ID,

                        NULL OPTIMIZER_MODE,

                        NULL MODULE,

                        NULL EXECUTIONS,

                        NULL FETCHES,

                        NULL SORTS,

                        NULL BUFFER_GETS,

                        NULL DISK_READS,

                        NULL ROWS_PROCESSED,

                        NULL CPU_TIME,

                        NULL ELAPSED_TIME,

                        NULL BUF_EXEC,

                        NULL DISK_EXEC,

                        NULL ROWS_EXEC,

                        NULL CPU_EXEC,

                        NULL ELAP_EXEC,

                        NULL IOWAIT,

                        NULL CLWAIT,

                        NULL APWAIT,

                        NULL CCWAIT,

                        NULL RNUM

                   FROM A

                  WHERE ROWNUM <= :19)

          WHERE RNUM <= :20 AND ROWNUM <= :21),

     A_DR

     AS (SELECT *

           FROM (SELECT 'DISK READS ALL' VIEWTYPE,

                        DBID,

                        SQL_ID,

                        OPTIMIZER_MODE,

                        MODULE,

                        EXECUTIONS,

                        FETCHES,

                        SORTS,

                        BUFFER_GETS,

                        DISK_READS,

                        ROWS_PROCESSED,

                        CPU_TIME,

                        ELAPSED_TIME,

                        BUFFER_GETS / EXECUTIONS BUF_EXEC,

                        DISK_READS / EXECUTIONS DISK_EXEC,

                        ROWS_PROCESSED / EXECUTIONS ROWS_EXEC,

                        CPU_TIME / EXECUTIONS CPU_EXEC,

                        ELAPSED_TIME / EXECUTIONS ELAP_EXEC,

                        IOWAIT,

                        CLWAIT,

                        APWAIT,

                        CCWAIT,

                        ROW_NUMBER ()

                        OVER (ORDER BY DISK_READS DESC, IOWAIT DESC, ROWNUM)

                           RNUM

                   FROM A

                 UNION ALL

                 SELECT 'DISK READS ALL' VIEWTYPE,

                        NULL DBID,

                        NULL SQL_ID,

                        NULL OPTIMIZER_MODE,

                        NULL MODULE,

                        NULL EXECUTIONS,

                        NULL FETCHES,

                        NULL SORTS,

                        NULL BUFFER_GETS,

                        NULL DISK_READS,

                        NULL ROWS_PROCESSED,

                        NULL CPU_TIME,

                        NULL ELAPSED_TIME,

                        NULL BUF_EXEC,

                        NULL DISK_EXEC,

                        NULL ROWS_EXEC,

                        NULL CPU_EXEC,

                        NULL ELAP_EXEC,

                        NULL IOWAIT,

                        NULL CLWAIT,

                        NULL APWAIT,

                        NULL CCWAIT,

                        NULL RNUM

                   FROM A

                  WHERE ROWNUM <= :22)

          WHERE RNUM <= :23 AND ROWNUM <= :24),

     A_CL

     AS (SELECT *

           FROM (SELECT 'CLUSTER WAIT ALL' VIEWTYPE,

                        DBID,

                        SQL_ID,

                        OPTIMIZER_MODE,

                        MODULE,

                        EXECUTIONS,

                        FETCHES,

                        SORTS,

                        BUFFER_GETS,

                        DISK_READS,

                        ROWS_PROCESSED,

                        CPU_TIME,

                        ELAPSED_TIME,

                        BUFFER_GETS / EXECUTIONS BUF_EXEC,

                        DISK_READS / EXECUTIONS DISK_EXEC,

                        ROWS_PROCESSED / EXECUTIONS ROWS_EXEC,

                        CPU_TIME / EXECUTIONS CPU_EXEC,

                        ELAPSED_TIME / EXECUTIONS ELAP_EXEC,

                        IOWAIT,

                        CLWAIT,

                        APWAIT,

                        CCWAIT,

                        ROW_NUMBER ()

                        OVER (ORDER BY CLWAIT DESC, DISK_READS DESC, ROWNUM)

                           RNUM

                   FROM A

                 UNION ALL

                 SELECT 'CLUSTER WAIT ALL' VIEWTYPE,

                        NULL DBID,

                        NULL SQL_ID,

                        NULL OPTIMIZER_MODE,

                        NULL MODULE,

                        NULL EXECUTIONS,

                        NULL FETCHES,

                        NULL SORTS,

                        NULL BUFFER_GETS,

                        NULL DISK_READS,

                        NULL ROWS_PROCESSED,

                        NULL CPU_TIME,

                        NULL ELAPSED_TIME,

                        NULL BUF_EXEC,

                        NULL DISK_EXEC,

                        NULL ROWS_EXEC,

                        NULL CPU_EXEC,

                        NULL ELAP_EXEC,

                        NULL IOWAIT,

                        NULL CLWAIT,

                        NULL APWAIT,

                        NULL CCWAIT,

                        NULL RNUM

                   FROM A

                  WHERE ROWNUM <= :25)

          WHERE RNUM <= :26 AND ROWNUM <= :27),

     A_CC

     AS (SELECT *

           FROM (SELECT 'CONSISTENT WAIT ALL' VIEWTYPE,

                        DBID,

                        SQL_ID,

                        OPTIMIZER_MODE,

                        MODULE,

                        EXECUTIONS,

                        FETCHES,

                        SORTS,

                        BUFFER_GETS,

                        DISK_READS,

                        ROWS_PROCESSED,

                        CPU_TIME,

                        ELAPSED_TIME,

                        BUFFER_GETS / EXECUTIONS BUF_EXEC,

                        DISK_READS / EXECUTIONS DISK_EXEC,

                        ROWS_PROCESSED / EXECUTIONS ROWS_EXEC,

                        CPU_TIME / EXECUTIONS CPU_EXEC,

                        ELAPSED_TIME / EXECUTIONS ELAP_EXEC,

                        IOWAIT,

                        CLWAIT,

                        APWAIT,

                        CCWAIT,

                        ROW_NUMBER ()

                        OVER (ORDER BY CCWAIT DESC, BUFFER_GETS DESC, ROWNUM)

                           RNUM

                   FROM A

                 UNION ALL

                 SELECT 'CONSISTENT WAIT ALL' VIEWTYPE,

                        NULL DBID,

                        NULL SQL_ID,

                        NULL OPTIMIZER_MODE,

                        NULL MODULE,

                        NULL EXECUTIONS,

                        NULL FETCHES,

                        NULL SORTS,

                        NULL BUFFER_GETS,

                        NULL DISK_READS,

                        NULL ROWS_PROCESSED,

                        NULL CPU_TIME,

                        NULL ELAPSED_TIME,

                        NULL BUF_EXEC,

                        NULL DISK_EXEC,

                        NULL ROWS_EXEC,

                        NULL CPU_EXEC,

                        NULL ELAP_EXEC,

                        NULL IOWAIT,

                        NULL CLWAIT,

                        NULL APWAIT,

                        NULL CCWAIT,

                        NULL RNUM

                   FROM A

                  WHERE ROWNUM <= :28)

          WHERE RNUM <= :29 AND ROWNUM <= :30),

     A_IW

     AS (SELECT *

           FROM (SELECT 'IO WAIT ALL' VIEWTYPE,

                        DBID,

                        SQL_ID,

                        OPTIMIZER_MODE,

                        MODULE,

                        EXECUTIONS,

                        FETCHES,

                        SORTS,

                        BUFFER_GETS,

                        DISK_READS,

                        ROWS_PROCESSED,

                        CPU_TIME,

                        ELAPSED_TIME,

                        BUFFER_GETS / EXECUTIONS BUF_EXEC,

                        DISK_READS / EXECUTIONS DISK_EXEC,

                        ROWS_PROCESSED / EXECUTIONS ROWS_EXEC,

                        CPU_TIME / EXECUTIONS CPU_EXEC,

                        ELAPSED_TIME / EXECUTIONS ELAP_EXEC,

                        IOWAIT,

                        CLWAIT,

                        APWAIT,

                        CCWAIT,

                        ROW_NUMBER ()

                        OVER (ORDER BY IOWAIT DESC, DISK_READS DESC, ROWNUM)

                           RNUM

                   FROM A

                 UNION ALL

                 SELECT 'IO WAIT ALL' VIEWTYPE,

                        NULL DBID,

                        NULL SQL_ID,

                        NULL OPTIMIZER_MODE,

                        NULL MODULE,

                        NULL EXECUTIONS,

                        NULL FETCHES,

                        NULL SORTS,

                        NULL BUFFER_GETS,

                        NULL DISK_READS,

                        NULL ROWS_PROCESSED,

                        NULL CPU_TIME,

                        NULL ELAPSED_TIME,

                        NULL BUF_EXEC,

                        NULL DISK_EXEC,

                        NULL ROWS_EXEC,

                        NULL CPU_EXEC,

                        NULL ELAP_EXEC,

                        NULL IOWAIT,

                        NULL CLWAIT,

                        NULL APWAIT,

                        NULL CCWAIT,

                        NULL RNUM

                   FROM A

                  WHERE ROWNUM <= :31)

          WHERE RNUM <= :32 AND ROWNUM <= :33),

     A_AW

     AS (SELECT *

           FROM (SELECT 'LOCK WAIT ALL' VIEWTYPE,

                        DBID,

                        SQL_ID,

                        OPTIMIZER_MODE,

                        MODULE,

                        EXECUTIONS,

                        FETCHES,

                        SORTS,

                        BUFFER_GETS,

                        DISK_READS,

                        ROWS_PROCESSED,

                        CPU_TIME,

                        ELAPSED_TIME,

                        BUFFER_GETS / EXECUTIONS BUF_EXEC,

                        DISK_READS / EXECUTIONS DISK_EXEC,

                        ROWS_PROCESSED / EXECUTIONS ROWS_EXEC,

                        CPU_TIME / EXECUTIONS CPU_EXEC,

                        ELAPSED_TIME / EXECUTIONS ELAP_EXEC,

                        IOWAIT,

                        CLWAIT,

                        APWAIT,

                        CCWAIT,

                        ROW_NUMBER ()

                           OVER (ORDER BY APWAIT DESC, CPU_TIME DESC, ROWNUM)

                           RNUM

                   FROM A

                 UNION ALL

                 SELECT 'LOCK WAIT ALL' VIEWTYPE,

                        NULL DBID,

                        NULL SQL_ID,

                        NULL OPTIMIZER_MODE,

                        NULL MODULE,

                        NULL EXECUTIONS,

                        NULL FETCHES,

                        NULL SORTS,

                        NULL BUFFER_GETS,

                        NULL DISK_READS,

                        NULL ROWS_PROCESSED,

                        NULL CPU_TIME,

                        NULL ELAPSED_TIME,

                        NULL BUF_EXEC,

                        NULL DISK_EXEC,

                        NULL ROWS_EXEC,

                        NULL CPU_EXEC,

                        NULL ELAP_EXEC,

                        NULL IOWAIT,

                        NULL CLWAIT,

                        NULL APWAIT,

                        NULL CCWAIT,

                        NULL RNUM

                   FROM A

                  WHERE ROWNUM <= :34)

          WHERE RNUM <= :35 AND ROWNUM <= :36),

     A_EC

     AS (SELECT *

           FROM (SELECT 'EXEC CNT ALL' VIEWTYPE,

                        DBID,

                        SQL_ID,

                        OPTIMIZER_MODE,

                        MODULE,

                        EXECUTIONS,

                        FETCHES,

                        SORTS,

                        BUFFER_GETS,

                        DISK_READS,

                        ROWS_PROCESSED,

                        CPU_TIME,

                        ELAPSED_TIME,

                        BUFFER_GETS / EXECUTIONS BUF_EXEC,

                        DISK_READS / EXECUTIONS DISK_EXEC,

                        ROWS_PROCESSED / EXECUTIONS ROWS_EXEC,

                        CPU_TIME / EXECUTIONS CPU_EXEC,

                        ELAPSED_TIME / EXECUTIONS ELAP_EXEC,

                        IOWAIT,

                        CLWAIT,

                        APWAIT,

                        CCWAIT,

                        ROW_NUMBER ()

                        OVER (

                           ORDER BY EXECUTIONS DESC, CPU_TIME DESC, ROWNUM)

                           RNUM

                   FROM A

                 UNION ALL

                 SELECT 'EXEC CNT ALL' VIEWTYPE,

                        NULL DBID,

                        NULL SQL_ID,

                        NULL OPTIMIZER_MODE,

                        NULL MODULE,

                        NULL EXECUTIONS,

                        NULL FETCHES,

                        NULL SORTS,

                        NULL BUFFER_GETS,

                        NULL DISK_READS,

                        NULL ROWS_PROCESSED,

                        NULL CPU_TIME,

                        NULL ELAPSED_TIME,

                        NULL BUF_EXEC,

                        NULL DISK_EXEC,

                        NULL ROWS_EXEC,

                        NULL CPU_EXEC,

                        NULL ELAP_EXEC,

                        NULL IOWAIT,

                        NULL CLWAIT,

                        NULL APWAIT,

                        NULL CCWAIT,

                        NULL RNUM

                   FROM A

                  WHERE ROWNUM <= :37)

          WHERE RNUM <= :38 AND ROWNUM <= :39)

  SELECT /*+ OPT_PARAM('_gby_hash_aggregation_enabled','TRUE') OPT_PARAM('_optimizer_distinct_agg_transform','FALSE') BUG_9002336 */

        SQLSTAT.VIEWTYPE,

         SQLSTAT.SQL_ID,

         SQLSTAT.OPTIMIZER_MODE,

         SQLSTAT.MODULE,

         TO_CHAR (SQLSTAT.EXECUTIONS, 'FM999,999,999,999,999,999') EXECUTIONS,

         TO_CHAR (SQLSTAT.FETCHES, 'FM999,999,999,999,999,999') FETCHES,

         TO_CHAR (SQLSTAT.SORTS, 'FM999,999,999,999,999,999') SORTS,

         TO_CHAR (SQLSTAT.BUFFER_GETS, 'FM999,999,999,999,999,999') BUFFER_GETS,

         TO_CHAR (SQLSTAT.DISK_READS, 'FM999,999,999,999,999,999') DISK_READS,

         TO_CHAR (SQLSTAT.ROWS_PROCESSED, 'FM999,999,999,999,999,999')

            ROWS_PROCESSED,

         TO_CHAR (SQLSTAT.CPU_TIME, 'FM999,999,999,999,999,999.9') CPU_TIME,

         TO_CHAR (SQLSTAT.ELAPSED_TIME, 'FM999,999,999,999,999,999.9')

            ELAPSED_TIME,

         TO_CHAR (SQLSTAT.BUF_EXEC, 'FM999,999,999,999,999,999.9') BUF_EXEC,

         TO_CHAR (SQLSTAT.DISK_EXEC, 'FM999,999,999,999,999,999.9') DISK_EXEC,

         TO_CHAR (SQLSTAT.ROWS_EXEC, 'FM999,999,999,999,999,999.9') ROWS_EXEC,

         TO_CHAR (SQLSTAT.CPU_EXEC, 'FM999,999,999,999,999.999') CPU_EXEC,

         TO_CHAR (SQLSTAT.ELAP_EXEC, 'FM999,999,999,999,999.999') ELAP_EXEC,

         TO_CHAR (SQLSTAT.IOWAIT, 'FM999,999,999,999,999,999.9') IOWAIT,

         TO_CHAR (SQLSTAT.CLWAIT, 'FM999,999,999,999,999,999.9') CLWAIT,

         TO_CHAR (SQLSTAT.APWAIT, 'FM999,999,999,999,999,999.9') APWAIT,

         TO_CHAR (SQLSTAT.CCWAIT, 'FM999,999,999,999,999,999.9') CCWAIT,

         SQLSTAT.RNUM,

         DBMS_LOB.SUBSTR (SQLT.SQL_TEXT, 3000, 1) SQL_TEXT,

         NULL SQL_PLAN,

         (SELECT 'Table Count:'

                 || COUNT (

                       DISTINCT CASE

                                   WHEN OBJECT_ALIAS IS NOT NULL

                                        AND OPERATION NOT IN ('VIEW')

                                   THEN

                                      OBJECT_ALIAS

                                END)

                 || CHR (10)

                 || 'View Count:'

                 || COUNT (

                       DISTINCT CASE

                                   WHEN OBJECT_ALIAS IS NOT NULL

                                        AND OPERATION IN ('VIEW')

                                   THEN

                                      OBJECT_ALIAS

                                END)

                 || CHR (10)

                 || 'Window Func Count:'

                 || COUNT (CASE WHEN OPERATION IN ('WINDOW') THEN OPTIONS END)

                 || CHR (10)

                 || 'Query Block Count:'

                 || COUNT (DISTINCT QBLOCK_NAME)

                 || CHR (10)

                 || 'TIME:'

                 || MAX (TIME)

                 || CHR (10)

                 || 'COST:'

                 || TO_CHAR (MAX (COST), 'FM999,999,999')

                 || CHR (10)

                 || 'CPU COST:'

                 || TO_CHAR (MAX (CPU_COST), 'FM999,999,999,999,999')

                 || CHR (10)

                 || 'IO COST:'

                 || TO_CHAR (MAX (IO_COST), 'FM999,999,999,999')

            FROM V$SQL_PLAN

           WHERE SQL_ID = SQLSTAT.SQL_ID)

            PLAN_COST1,

         (SELECT 'Table Count:'

                 || COUNT (

                       DISTINCT CASE

                                   WHEN OBJECT_ALIAS IS NOT NULL

                                        AND OPERATION NOT IN ('VIEW')

                                   THEN

                                      OBJECT_ALIAS

                                END)

                 || CHR (10)

                 || 'View Count:'

                 || COUNT (

                       DISTINCT CASE

                                   WHEN OBJECT_ALIAS IS NOT NULL

                                        AND OPERATION IN ('VIEW')

                                   THEN

                                      OBJECT_ALIAS

                                END)

                 || CHR (10)

                 || 'Window Func Count:'

                 || COUNT (CASE WHEN OPERATION IN ('WINDOW') THEN OPTIONS END)

                 || CHR (10)

                 || 'Query Block Count:'

                 || COUNT (DISTINCT QBLOCK_NAME)

                 || CHR (10)

                 || 'TIME:'

                 || MAX (TIME)

                 || CHR (10)

                 || 'COST:'

                 || TO_CHAR (MAX (COST), 'FM999,999,999')

                 || CHR (10)

                 || 'CPU COST:'

                 || TO_CHAR (MAX (CPU_COST), 'FM999,999,999,999,999')

                 || CHR (10)

                 || 'IO COST:'

                 || TO_CHAR (MAX (IO_COST), 'FM999,999,999,999')

            FROM DBA_HIST_SQL_PLAN

           WHERE SQL_ID = SQLSTAT.SQL_ID AND DBID = SQLSTAT.DBID

                 AND TIMESTAMP IN

                        (SELECT MAX (TIMESTAMP)

                           FROM DBA_HIST_SQL_PLAN

                          WHERE SQL_ID = SQLSTAT.SQL_ID AND DBID = SQLSTAT.DBID))

            PLAN_COST2,

         NULL BIND_VALUE,

         NULL SQL_PROFILE

    FROM (SELECT * FROM A_ET

          UNION ALL

          SELECT 'ELAPSED TIME ALL' VIEWTYPE,

                 0 DBID,

                 'ETC' SQL_ID,

                 NULL OPTIMIZER_MODE,

                 'ETC' MODULE,

                 V2.EXECUTIONS - V1.EXECUTIONS EXECUTIONS,

                 V2.FETCHES - V1.FETCHES FETCHES,

                 V2.SORTS - V1.SORTS SORTS,

                 V2.BUFFER_GETS - V1.BUFFER_GETS BUFFER_GETS,

                 V2.DISK_READS - V1.DISK_READS DISK_READS,

                 V2.ROWS_PROCESSED - V1.ROWS_PROCESSED ROWS_PROCESSED,

                 V2.CPU_TIME - V1.CPU_TIME CPU_TIME,

                 V2.ELAPSED_TIME - V1.ELAPSED_TIME ELAPSED_TIME,

                 0 BUF_EXEC,

                 0 DISK_EXEC,

                 0 ROWS_EXEC,

                 0 CPU_EXEC,

                 0 ELAP_EXEC,

                 V2.IOWAIT - V1.IOWAIT IOWAIT,

                 V2.CLWAIT - V1.CLWAIT CLWAIT,

                 V2.APWAIT - V1.APWAIT APWAIT,

                 V2.CCWAIT - V1.CCWAIT CCWAIT,

                 NULL RNUM

            FROM (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_ET) V1,

                 (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_TOT) V2

          UNION ALL

          SELECT *

            FROM (SELECT 'ELAPSED TIME ONE' VIEWTYPE,

                         DBID,

                         SQL_ID,

                         OPTIMIZER_MODE,

                         MODULE,

                         EXECUTIONS,

                         FETCHES,

                         SORTS,

                         BUFFER_GETS,

                         DISK_READS,

                         ROWS_PROCESSED,

                         CPU_TIME,

                         ELAPSED_TIME,

                         BUFFER_GETS / EXECUTIONS BUF_EXEC,

                         DISK_READS / EXECUTIONS DISK_EXEC,

                         ROWS_PROCESSED / EXECUTIONS ROWS_EXEC,

                         CPU_TIME / EXECUTIONS CPU_EXEC,

                         ELAPSED_TIME / EXECUTIONS ELAP_EXEC,

                         IOWAIT,

                         CLWAIT,

                         APWAIT,

                         CCWAIT,

                         ROW_NUMBER ()

                         OVER (

                            ORDER BY

                               ELAPSED_TIME / EXECUTIONS DESC,

                               CPU_TIME DESC,

                               ROWNUM)

                            RNUM

                    FROM A

                  UNION ALL

                  SELECT 'ELAPSED TIME ONE' VIEWTYPE,

                         NULL DBID,

                         NULL SQL_ID,

                         NULL OPTIMIZER_MODE,

                         NULL MODULE,

                         NULL EXECUTIONS,

                         NULL FETCHES,

                         NULL SORTS,

                         NULL BUFFER_GETS,

                         NULL DISK_READS,

                         NULL ROWS_PROCESSED,

                         NULL CPU_TIME,

                         NULL ELAPSED_TIME,

                         NULL BUF_EXEC,

                         NULL DISK_EXEC,

                         NULL ROWS_EXEC,

                         NULL CPU_EXEC,

                         NULL ELAP_EXEC,

                         NULL IOWAIT,

                         NULL CLWAIT,

                         NULL APWAIT,

                         NULL CCWAIT,

                         NULL RNUM

                    FROM A

                   WHERE ROWNUM <= :40 + 1)

           WHERE RNUM <= :41 + 1 AND ROWNUM <= :42 + 1

          UNION ALL

          SELECT * FROM A_CT

          UNION ALL

          SELECT 'CPU TIME ALL' VIEWTYPE,

                 0 DBID,

                 'ETC' SQL_ID,

                 NULL OPTIMIZER_MODE,

                 'ETC' MODULE,

                 V2.EXECUTIONS - V1.EXECUTIONS EXECUTIONS,

                 V2.FETCHES - V1.FETCHES FETCHES,

                 V2.SORTS - V1.SORTS SORTS,

                 V2.BUFFER_GETS - V1.BUFFER_GETS BUFFER_GETS,

                 V2.DISK_READS - V1.DISK_READS DISK_READS,

                 V2.ROWS_PROCESSED - V1.ROWS_PROCESSED ROWS_PROCESSED,

                 V2.CPU_TIME - V1.CPU_TIME CPU_TIME,

                 V2.ELAPSED_TIME - V1.ELAPSED_TIME ELAPSED_TIME,

                 0 BUF_EXEC,

                 0 DISK_EXEC,

                 0 ROWS_EXEC,

                 0 CPU_EXEC,

                 0 ELAP_EXEC,

                 V2.IOWAIT - V1.IOWAIT IOWAIT,

                 V2.CLWAIT - V1.CLWAIT CLWAIT,

                 V2.APWAIT - V1.APWAIT APWAIT,

                 V2.CCWAIT - V1.CCWAIT CCWAIT,

                 NULL RNUM

            FROM (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_CT) V1,

                 (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_TOT) V2

          UNION ALL

          SELECT *

            FROM (SELECT 'CPU TIME ONE' VIEWTYPE,

                         DBID,

                         SQL_ID,

                         OPTIMIZER_MODE,

                         MODULE,

                         EXECUTIONS,

                         FETCHES,

                         SORTS,

                         BUFFER_GETS,

                         DISK_READS,

                         ROWS_PROCESSED,

                         CPU_TIME,

                         ELAPSED_TIME,

                         BUFFER_GETS / EXECUTIONS BUF_EXEC,

                         DISK_READS / EXECUTIONS DISK_EXEC,

                         ROWS_PROCESSED / EXECUTIONS ROWS_EXEC,

                         CPU_TIME / EXECUTIONS CPU_EXEC,

                         ELAPSED_TIME / EXECUTIONS ELAP_EXEC,

                         IOWAIT,

                         CLWAIT,

                         APWAIT,

                         CCWAIT,

                         ROW_NUMBER ()

                         OVER (

                            ORDER BY

                               CPU_TIME / EXECUTIONS DESC,

                               BUFFER_GETS DESC,

                               ROWNUM)

                            RNUM

                    FROM A

                  UNION ALL

                  SELECT 'CPU TIME ONE' VIEWTYPE,

                         NULL DBID,

                         NULL SQL_ID,

                         NULL OPTIMIZER_MODE,

                         NULL MODULE,

                         NULL EXECUTIONS,

                         NULL FETCHES,

                         NULL SORTS,

                         NULL BUFFER_GETS,

                         NULL DISK_READS,

                         NULL ROWS_PROCESSED,

                         NULL CPU_TIME,

                         NULL ELAPSED_TIME,

                         NULL BUF_EXEC,

                         NULL DISK_EXEC,

                         NULL ROWS_EXEC,

                         NULL CPU_EXEC,

                         NULL ELAP_EXEC,

                         NULL IOWAIT,

                         NULL CLWAIT,

                         NULL APWAIT,

                         NULL CCWAIT,

                         NULL RNUM

                    FROM A

                   WHERE ROWNUM <= :43 + 1)

           WHERE RNUM <= :44 + 1 AND ROWNUM <= :45 + 1

          UNION ALL

          SELECT * FROM A_BG

          UNION ALL

          SELECT 'BUFFER GETS ALL' VIEWTYPE,

                 0 DBID,

                 'ETC' SQL_ID,

                 NULL OPTIMIZER_MODE,

                 'ETC' MODULE,

                 V2.EXECUTIONS - V1.EXECUTIONS EXECUTIONS,

                 V2.FETCHES - V1.FETCHES FETCHES,

                 V2.SORTS - V1.SORTS SORTS,

                 V2.BUFFER_GETS - V1.BUFFER_GETS BUFFER_GETS,

                 V2.DISK_READS - V1.DISK_READS DISK_READS,

                 V2.ROWS_PROCESSED - V1.ROWS_PROCESSED ROWS_PROCESSED,

                 V2.CPU_TIME - V1.CPU_TIME CPU_TIME,

                 V2.ELAPSED_TIME - V1.ELAPSED_TIME ELAPSED_TIME,

                 0 BUF_EXEC,

                 0 DISK_EXEC,

                 0 ROWS_EXEC,

                 0 CPU_EXEC,

                 0 ELAP_EXEC,

                 V2.IOWAIT - V1.IOWAIT IOWAIT,

                 V2.CLWAIT - V1.CLWAIT CLWAIT,

                 V2.APWAIT - V1.APWAIT APWAIT,

                 V2.CCWAIT - V1.CCWAIT CCWAIT,

                 NULL RNUM

            FROM (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_BG) V1,

                 (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_TOT) V2

          UNION ALL

          SELECT *

            FROM (SELECT 'BUFFER GETS ONE' VIEWTYPE,

                         DBID,

                         SQL_ID,

                         OPTIMIZER_MODE,

                         MODULE,

                         EXECUTIONS,

                         FETCHES,

                         SORTS,

                         BUFFER_GETS,

                         DISK_READS,

                         ROWS_PROCESSED,

                         CPU_TIME,

                         ELAPSED_TIME,

                         BUFFER_GETS / EXECUTIONS BUF_EXEC,

                         DISK_READS / EXECUTIONS DISK_EXEC,

                         ROWS_PROCESSED / EXECUTIONS ROWS_EXEC,

                         CPU_TIME / EXECUTIONS CPU_EXEC,

                         ELAPSED_TIME / EXECUTIONS ELAP_EXEC,

                         IOWAIT,

                         CLWAIT,

                         APWAIT,

                         CCWAIT,

                         ROW_NUMBER ()

                         OVER (

                            ORDER BY

                               BUFFER_GETS / EXECUTIONS DESC,

                               CPU_TIME DESC,

                               ROWNUM)

                            RNUM

                    FROM A

                  UNION ALL

                  SELECT 'BUFFER GETS ONE' VIEWTYPE,

                         NULL DBID,

                         NULL SQL_ID,

                         NULL OPTIMIZER_MODE,

                         NULL MODULE,

                         NULL EXECUTIONS,

                         NULL FETCHES,

                         NULL SORTS,

                         NULL BUFFER_GETS,

                         NULL DISK_READS,

                         NULL ROWS_PROCESSED,

                         NULL CPU_TIME,

                         NULL ELAPSED_TIME,

                         NULL BUF_EXEC,

                         NULL DISK_EXEC,

                         NULL ROWS_EXEC,

                         NULL CPU_EXEC,

                         NULL ELAP_EXEC,

                         NULL IOWAIT,

                         NULL CLWAIT,

                         NULL APWAIT,

                         NULL CCWAIT,

                         NULL RNUM

                    FROM A

                   WHERE ROWNUM <= :46 + 1)

           WHERE RNUM <= :47 + 1 AND ROWNUM <= :48 + 1

          UNION ALL

          SELECT * FROM A_DR

          UNION ALL

          SELECT 'DISK READS ALL' VIEWTYPE,

                 0 DBID,

                 'ETC' SQL_ID,

                 NULL OPTIMIZER_MODE,

                 'ETC' MODULE,

                 V2.EXECUTIONS - V1.EXECUTIONS EXECUTIONS,

                 V2.FETCHES - V1.FETCHES FETCHES,

                 V2.SORTS - V1.SORTS SORTS,

                 V2.BUFFER_GETS - V1.BUFFER_GETS BUFFER_GETS,

                 V2.DISK_READS - V1.DISK_READS DISK_READS,

                 V2.ROWS_PROCESSED - V1.ROWS_PROCESSED ROWS_PROCESSED,

                 V2.CPU_TIME - V1.CPU_TIME CPU_TIME,

                 V2.ELAPSED_TIME - V1.ELAPSED_TIME ELAPSED_TIME,

                 0 BUF_EXEC,

                 0 DISK_EXEC,

                 0 ROWS_EXEC,

                 0 CPU_EXEC,

                 0 ELAP_EXEC,

                 V2.IOWAIT - V1.IOWAIT IOWAIT,

                 V2.CLWAIT - V1.CLWAIT CLWAIT,

                 V2.APWAIT - V1.APWAIT APWAIT,

                 V2.CCWAIT - V1.CCWAIT CCWAIT,

                 NULL RNUM

            FROM (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_DR) V1,

                 (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_TOT) V2

          UNION ALL

          SELECT *

            FROM (SELECT 'DISK READS ONE' VIEWTYPE,

                         DBID,

                         SQL_ID,

                         OPTIMIZER_MODE,

                         MODULE,

                         EXECUTIONS,

                         FETCHES,

                         SORTS,

                         BUFFER_GETS,

                         DISK_READS,

                         ROWS_PROCESSED,

                         CPU_TIME,

                         ELAPSED_TIME,

                         BUFFER_GETS / EXECUTIONS BUF_EXEC,

                         DISK_READS / EXECUTIONS DISK_EXEC,

                         ROWS_PROCESSED / EXECUTIONS ROWS_EXEC,

                         CPU_TIME / EXECUTIONS CPU_EXEC,

                         ELAPSED_TIME / EXECUTIONS ELAP_EXEC,

                         IOWAIT,

                         CLWAIT,

                         APWAIT,

                         CCWAIT,

                         ROW_NUMBER ()

                         OVER (

                            ORDER BY

                               DISK_READS / EXECUTIONS DESC,

                               CLWAIT DESC,

                               ROWNUM)

                            RNUM

                    FROM A

                  UNION ALL

                  SELECT 'DISK READS ONE' VIEWTYPE,

                         NULL DBID,

                         NULL SQL_ID,

                         NULL OPTIMIZER_MODE,

                         NULL MODULE,

                         NULL EXECUTIONS,

                         NULL FETCHES,

                         NULL SORTS,

                         NULL BUFFER_GETS,

                         NULL DISK_READS,

                         NULL ROWS_PROCESSED,

                         NULL CPU_TIME,

                         NULL ELAPSED_TIME,

                         NULL BUF_EXEC,

                         NULL DISK_EXEC,

                         NULL ROWS_EXEC,

                         NULL CPU_EXEC,

                         NULL ELAP_EXEC,

                         NULL IOWAIT,

                         NULL CLWAIT,

                         NULL APWAIT,

                         NULL CCWAIT,

                         NULL RNUM

                    FROM A

                   WHERE ROWNUM <= :49 + 1)

           WHERE RNUM <= :50 + 1 AND ROWNUM <= :51 + 1

          UNION ALL

          SELECT * FROM A_CL

          UNION ALL

          SELECT 'CLUSTER WAIT ALL' VIEWTYPE,

                 0 DBID,

                 'ETC' SQL_ID,

                 NULL OPTIMIZER_MODE,

                 'ETC' MODULE,

                 V2.EXECUTIONS - V1.EXECUTIONS EXECUTIONS,

                 V2.FETCHES - V1.FETCHES FETCHES,

                 V2.SORTS - V1.SORTS SORTS,

                 V2.BUFFER_GETS - V1.BUFFER_GETS BUFFER_GETS,

                 V2.DISK_READS - V1.DISK_READS DISK_READS,

                 V2.ROWS_PROCESSED - V1.ROWS_PROCESSED ROWS_PROCESSED,

                 V2.CPU_TIME - V1.CPU_TIME CPU_TIME,

                 V2.ELAPSED_TIME - V1.ELAPSED_TIME ELAPSED_TIME,

                 0 BUF_EXEC,

                 0 DISK_EXEC,

                 0 ROWS_EXEC,

                 0 CPU_EXEC,

                 0 ELAP_EXEC,

                 V2.IOWAIT - V1.IOWAIT IOWAIT,

                 V2.CLWAIT - V1.CLWAIT CLWAIT,

                 V2.APWAIT - V1.APWAIT APWAIT,

                 V2.CCWAIT - V1.CCWAIT CCWAIT,

                 NULL RNUM

            FROM (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_CL) V1,

                 (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_TOT) V2

          UNION ALL

          SELECT * FROM A_CC

          UNION ALL

          SELECT 'CONSISTENT WAIT ALL' VIEWTYPE,

                 0 DBID,

                 'ETC' SQL_ID,

                 NULL OPTIMIZER_MODE,

                 'ETC' MODULE,

                 V2.EXECUTIONS - V1.EXECUTIONS EXECUTIONS,

                 V2.FETCHES - V1.FETCHES FETCHES,

                 V2.SORTS - V1.SORTS SORTS,

                 V2.BUFFER_GETS - V1.BUFFER_GETS BUFFER_GETS,

                 V2.DISK_READS - V1.DISK_READS DISK_READS,

                 V2.ROWS_PROCESSED - V1.ROWS_PROCESSED ROWS_PROCESSED,

                 V2.CPU_TIME - V1.CPU_TIME CPU_TIME,

                 V2.ELAPSED_TIME - V1.ELAPSED_TIME ELAPSED_TIME,

                 0 BUF_EXEC,

                 0 DISK_EXEC,

                 0 ROWS_EXEC,

                 0 CPU_EXEC,

                 0 ELAP_EXEC,

                 V2.IOWAIT - V1.IOWAIT IOWAIT,

                 V2.CLWAIT - V1.CLWAIT CLWAIT,

                 V2.APWAIT - V1.APWAIT APWAIT,

                 V2.CCWAIT - V1.CCWAIT CCWAIT,

                 NULL RNUM

            FROM (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_CC) V1,

                 (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_TOT) V2

          UNION ALL

          SELECT * FROM A_IW

          UNION ALL

          SELECT 'IO WAIT ALL' VIEWTYPE,

                 0 DBID,

                 'ETC' SQL_ID,

                 NULL OPTIMIZER_MODE,

                 'ETC' MODULE,

                 V2.EXECUTIONS - V1.EXECUTIONS EXECUTIONS,

                 V2.FETCHES - V1.FETCHES FETCHES,

                 V2.SORTS - V1.SORTS SORTS,

                 V2.BUFFER_GETS - V1.BUFFER_GETS BUFFER_GETS,

                 V2.DISK_READS - V1.DISK_READS DISK_READS,

                 V2.ROWS_PROCESSED - V1.ROWS_PROCESSED ROWS_PROCESSED,

                 V2.CPU_TIME - V1.CPU_TIME CPU_TIME,

                 V2.ELAPSED_TIME - V1.ELAPSED_TIME ELAPSED_TIME,

                 0 BUF_EXEC,

                 0 DISK_EXEC,

                 0 ROWS_EXEC,

                 0 CPU_EXEC,

                 0 ELAP_EXEC,

                 V2.IOWAIT - V1.IOWAIT IOWAIT,

                 V2.CLWAIT - V1.CLWAIT CLWAIT,

                 V2.APWAIT - V1.APWAIT APWAIT,

                 V2.CCWAIT - V1.CCWAIT CCWAIT,

                 NULL RNUM

            FROM (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_IW) V1,

                 (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_TOT) V2

          UNION ALL

          SELECT * FROM A_AW

          UNION ALL

          SELECT 'LOCK WAIT ALL' VIEWTYPE,

                 0 DBID,

                 'ETC' SQL_ID,

                 NULL OPTIMIZER_MODE,

                 'ETC' MODULE,

                 V2.EXECUTIONS - V1.EXECUTIONS EXECUTIONS,

                 V2.FETCHES - V1.FETCHES FETCHES,

                 V2.SORTS - V1.SORTS SORTS,

                 V2.BUFFER_GETS - V1.BUFFER_GETS BUFFER_GETS,

                 V2.DISK_READS - V1.DISK_READS DISK_READS,

                 V2.ROWS_PROCESSED - V1.ROWS_PROCESSED ROWS_PROCESSED,

                 V2.CPU_TIME - V1.CPU_TIME CPU_TIME,

                 V2.ELAPSED_TIME - V1.ELAPSED_TIME ELAPSED_TIME,

                 0 BUF_EXEC,

                 0 DISK_EXEC,

                 0 ROWS_EXEC,

                 0 CPU_EXEC,

                 0 ELAP_EXEC,

                 V2.IOWAIT - V1.IOWAIT IOWAIT,

                 V2.CLWAIT - V1.CLWAIT CLWAIT,

                 V2.APWAIT - V1.APWAIT APWAIT,

                 V2.CCWAIT - V1.CCWAIT CCWAIT,

                 NULL RNUM

            FROM (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_AW) V1,

                 (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_TOT) V2

          UNION ALL

          SELECT * FROM A_EC

          UNION ALL

          SELECT 'EXEC CNT ALL' VIEWTYPE,

                 0 DBID,

                 'ETC' SQL_ID,

                 NULL OPTIMIZER_MODE,

                 'ETC' MODULE,

                 V2.EXECUTIONS - V1.EXECUTIONS EXECUTIONS,

                 V2.FETCHES - V1.FETCHES FETCHES,

                 V2.SORTS - V1.SORTS SORTS,

                 V2.BUFFER_GETS - V1.BUFFER_GETS BUFFER_GETS,

                 V2.DISK_READS - V1.DISK_READS DISK_READS,

                 V2.ROWS_PROCESSED - V1.ROWS_PROCESSED ROWS_PROCESSED,

                 V2.CPU_TIME - V1.CPU_TIME CPU_TIME,

                 V2.ELAPSED_TIME - V1.ELAPSED_TIME ELAPSED_TIME,

                 0 BUF_EXEC,

                 0 DISK_EXEC,

                 0 ROWS_EXEC,

                 0 CPU_EXEC,

                 0 ELAP_EXEC,

                 V2.IOWAIT - V1.IOWAIT IOWAIT,

                 V2.CLWAIT - V1.CLWAIT CLWAIT,

                 V2.APWAIT - V1.APWAIT APWAIT,

                 V2.CCWAIT - V1.CCWAIT CCWAIT,

                 NULL RNUM

            FROM (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_EC) V1,

                 (SELECT SUM (EXECUTIONS) EXECUTIONS,

                         SUM (FETCHES) FETCHES,

                         SUM (SORTS) SORTS,

                         SUM (BUFFER_GETS) BUFFER_GETS,

                         SUM (DISK_READS) DISK_READS,

                         SUM (ROWS_PROCESSED) ROWS_PROCESSED,

                         SUM (CPU_TIME) CPU_TIME,

                         SUM (ELAPSED_TIME) ELAPSED_TIME,

                         SUM (IOWAIT) IOWAIT,

                         SUM (CLWAIT) CLWAIT,

                         SUM (APWAIT) APWAIT,

                         SUM (CCWAIT) CCWAIT

                    FROM A_TOT) V2

          UNION ALL

          SELECT 'TOTAL' VIEWTYPE,

                 DBID,

                 SQL_ID,

                 OPTIMIZER_MODE,

                 MODULE,

                 EXECUTIONS,

                 FETCHES,

                 SORTS,

                 BUFFER_GETS,

                 DISK_READS,

                 ROWS_PROCESSED,

                 CPU_TIME,

                 ELAPSED_TIME,

                 BUF_EXEC,

                 DISK_EXEC,

                 ROWS_EXEC,

                 CPU_EXEC,

                 ELAP_EXEC,

                 IOWAIT,

                 CLWAIT,

                 APWAIT,

                 CCWAIT,

                 RNUM

            FROM A_TOT) SQLSTAT,

         DBA_HIST_SQLTEXT SQLT

   WHERE SQLSTAT.SQL_ID = SQLT.SQL_ID(+) AND SQLSTAT.DBID = SQLT.DBID(+)

ORDER BY VIEWTYPE, RNUM


--2.SQL_PLAN

/* Formatted on 2015-02-17 오후 2:17:18 (QP5 v5.163.1008.3004) */

  SELECT LPAD (' ', DEPTH) || OPERATION || '_' || OPTIONS || ' ' || OBJECT_NAME

            operation

    FROM DBA_HIST_SQL_PLAN

   WHERE SQL_ID = '8uru9t6frg2mw'

         AND TIMESTAMP IN

                (SELECT MAX (TIMESTAMP)

                   FROM DBA_HIST_SQL_PLAN

                  WHERE SQL_ID = '8uru9t6frg2mw'

                        AND DBID = (SELECT dbid FROM v$database))         --변경

ORDER BY ID, PLAN_HASH_VALUE;


/* Formatted on 2015-02-17 오후 1:17:13 (QP5 v5.163.1008.3004) */

    SELECT DECODE (id, 0, CHR (10)) || LPAD (' ', 1 * (LEVEL - 1)) || OPERATION

           || DECODE (

                 id,

                 0,    ' : '

                    || optimizer

                    || ' : '

                    || TO_CHAR (TIMESTAMP, 'YYYY.MM.DD HH24:MI:SS')

                    || ' ['

                    || PLAN_HASH_VALUE

                    || ']')

           || DECODE (options, NULL, NULL, ' (')

           || options

           || DECODE (options, NULL, NULL, ')')

           || DECODE (object_name, NULL, NULL, ' : ')

           || object_owner

           || DECODE (object_owner, NULL, NULL, '.')

           || OBJECT_NAME

           || DECODE (

                 operation,

                 'TABLE ACCESS', DECODE (

                                    options,

                                    'FULL', ' <'

                                            || TRIM (

                                                  TO_CHAR (

                                                     (SELECT num_rows

                                                        FROM all_tables at

                                                       WHERE at.owner =

                                                                object_owner

                                                             AND at.table_name =

                                                                    object_name)))

                                            || '>'))

           || DECODE (

                 operation,

                 'INDEX', ' <'

                          || TRIM (

                                TO_CHAR (

                                   (SELECT avg_data_blocks_per_key

                                      FROM all_indexes ai

                                     WHERE ai.owner = object_owner

                                           AND ai.index_name = object_name)))

                          || '>')

           || DECODE (

                 SUBSTR (operation, 1, 5),

                 'INDEX', '(' || SEARCH_COLUMNS || ':'

                          || REPLACE (

                                TRIM (

                                   (SELECT /*+ LEADING(DIC.IO) USE_NL(DIC.IDX DIC.IC DIC.I) INDEX(DIC.BASE DIC.IDX) */

                                          MAX (

                                              DECODE (column_position,

                                                      1, column_name))

                                           || ' '

                                           || MAX (

                                                 DECODE (column_position,

                                                         2, column_name))

                                           || ' '

                                           || MAX (

                                                 DECODE (column_position,

                                                         3, column_name))

                                           || ' '

                                           || MAX (

                                                 DECODE (column_position,

                                                         4, column_name))

                                           || ' '

                                           || MAX (

                                                 DECODE (column_position,

                                                         5, column_name))

                                           || ' '

                                           || MAX (

                                                 DECODE (column_position,

                                                         6, column_name))

                                           || ' '

                                           || MAX (

                                                 DECODE (column_position,

                                                         7, column_name))

                                           || ' '

                                           || MAX (

                                                 DECODE (column_position,

                                                         8, column_name))

                                           || ' '

                                           || MAX (

                                                 DECODE (column_position,

                                                         9, column_name))

                                           || ' '

                                           || MAX (

                                                 DECODE (column_position,

                                                         10, column_name))

                                           || ' '

                                           || MAX (

                                                 DECODE (column_position,

                                                         11, column_name))

                                           || ' '

                                      FROM all_ind_columns dic

                                     WHERE dic.index_owner = object_owner

                                           AND dic.index_name = object_name)),

                                ' ',

                                ',')

                          || ')',

                 NULL)

           || DECODE (other_tag, NULL, NULL, '(')

           || other_tag

           || DECODE (other_tag, NULL, NULL, ')')

           || DECODE (partition_start, NULL, NULL, ' pst:')

           || partition_start

           || DECODE (partition_start, NULL, NULL, ' pstop: ')

           || partition_stop

              AS OPERATION

      FROM (SELECT                                    /*+ ALL_ROWS NO_MERGE */

                  TO_CHAR (DBID),

                   SQL_ID,

                   PLAN_HASH_VALUE,

                   ID,

                   OPERATION,

                   OPTIONS,

                   OBJECT_NODE,

                   OBJECT#,

                   OBJECT_OWNER,

                   OBJECT_NAME,

                   OBJECT_ALIAS,

                   OBJECT_TYPE,

                   OPTIMIZER,

                   PARENT_ID,

                   DEPTH,

                   POSITION,

                   SEARCH_COLUMNS,

                   COST,

                   CARDINALITY,

                   BYTES,

                   OTHER_TAG,

                   PARTITION_START,

                   PARTITION_STOP,

                   PARTITION_ID,

                   OTHER,

                   DISTRIBUTION,

                   CPU_COST,

                   IO_COST,

                   TEMP_SPACE,

                   ACCESS_PREDICATES,

                   FILTER_PREDICATES,

                   PROJECTION,

                   TIME,

                   QBLOCK_NAME,

                   REMARKS,

                   TIMESTAMP,

                      RPAD (TO_CHAR (ID), 10, ' ')

                   || TO_CHAR (TIMESTAMP, 'YYYYMMDDHH24MISS')

                   || PLAN_HASH_VALUE

                   || 'P'

                   || SQL_ID

                      ID_M,

                      RPAD (TO_CHAR (PARENT_ID), 10, ' ')

                   || TO_CHAR (TIMESTAMP, 'YYYYMMDDHH24MISS')

                   || PLAN_HASH_VALUE

                   || 'P'

                   || SQL_ID

                      PID_M

              FROM DBA_HIST_SQL_PLAN

             WHERE     SQL_ID = :1

                   AND DBID = (select dbid from v$database) --변경 

                   AND TIMESTAMP IN (SELECT MAX (TIMESTAMP)

                                       FROM DBA_HIST_SQL_PLAN

                                      WHERE SQL_ID = :3 AND DBID = (select dbid from v$database) --변경 

                                      ))

CONNECT BY PRIOR ID_M = PID_M

START WITH ID = 0 AND SQL_ID = :5;


--3.SQL_PROFILE 내역 

/* Formatted on 2015-02-17 오후 12:58:52 (QP5 v5.163.1008.3004) */

SELECT    LPAD ('DATE', 12, ' ')

       || LPAD ('BUFFER GETS TOTAL', 20, ' ')

       || LPAD ('CPU TIME TOTAL', 15, ' ')

       || LPAD ('CC WAIT TIME', 14, ' ')

       || LPAD ('IO WAIT TIME', 14, ' ')

       || LPAD ('ROWS PROCESSED', 15, ' ')

       || LPAD ('BUFF/EXEC', 15, ' ')

       || LPAD ('CPU/EXEC', 14, ' ')

       || LPAD ('CC/EXEC', 14, ' ')

       || LPAD ('IO/EXEC', 14, ' ')

       || CHR (10)

       || LPAD ('TOTAL EXECU', 12, ' ')

       || LPAD ('DISK READS TOTAL', 20, ' ')

       || LPAD ('ELAPSED TIME', 15, ' ')

       || LPAD ('CL WAIT TIME', 14, ' ')

       || LPAD ('AP WAIT TIME', 14, ' ')

       || LPAD ('ROWS PROC/EXEC', 15, ' ')

       || LPAD ('DISK/EXEC', 15, ' ')

       || LPAD ('ELAP/EXEC', 14, ' ')

       || LPAD ('CL/EXEC', 14, ' ')

       || LPAD ('AP/EXEC', 14, ' ')

          A

  FROM DUAL

UNION ALL

SELECT LPAD ('-', 147, '-') A FROM DUAL

UNION ALL

SELECT A

  FROM (  SELECT LPAD (TO_CHAR (END_INTERVAL_TIME, 'YYYY.MM.DD'), 12, ' ')

                 || LPAD (

                       TO_CHAR (SUM (BUFFER_GETS_DELTA),

                                'FM999,999,999,999,999'),

                       20,

                       ' ')

                 || LPAD (

                       TO_CHAR (ROUND (SUM (CPU_TIME_DELTA) / 1000000, 1),

                                'FM999,999,999.9'),

                       15,

                       ' ')

                 || LPAD (

                       TO_CHAR (ROUND (SUM (CCWAIT_DELTA) / 1000000, 1),

                                'FM999,999,999.9'),

                       14,

                       ' ')

                 || LPAD (

                       TO_CHAR (ROUND (SUM (IOWAIT_DELTA) / 1000000, 1),

                                'FM999,999,999.9'),

                       14,

                       ' ')

                 || LPAD (

                       TO_CHAR (SUM (ROWS_PROCESSED_DELTA),

                                'FM999,999,999,999,999.9'),

                       15,

                       ' ')

                 || LPAD (

                       TO_CHAR (

                          ROUND (

                             SUM (BUFFER_GETS_DELTA)

                             / DECODE (SUM (EXECUTIONS_DELTA),

                                       0, 1,

                                       SUM (EXECUTIONS_DELTA)),

                             0),

                          'FM999,999,999,999.9'),

                       15,

                       ' ')

                 || LPAD (

                       TO_CHAR (

                          ROUND (

                             (SUM (CPU_TIME_DELTA) / 1000000)

                             / DECODE (SUM (EXECUTIONS_DELTA),

                                       0, 1,

                                       SUM (EXECUTIONS_DELTA)),

                             1),

                          'FM999,999.9'),

                       14,

                       ' ')

                 || LPAD (

                       TO_CHAR (

                          ROUND (

                             (SUM (CCWAIT_DELTA) / 1000000)

                             / DECODE (SUM (EXECUTIONS_DELTA),

                                       0, 1,

                                       SUM (EXECUTIONS_DELTA)),

                             1),

                          'FM999,999.9'),

                       14,

                       ' ')

                 || LPAD (

                       TO_CHAR (

                          ROUND (

                             (SUM (IOWAIT_DELTA) / 1000000)

                             / DECODE (SUM (EXECUTIONS_DELTA),

                                       0, 1,

                                       SUM (EXECUTIONS_DELTA)),

                             1),

                          'FM999,999.9'),

                       14,

                       ' ')

                 || CHR (10)

                 || LPAD (TO_CHAR (SUM (EXECUTIONS_DELTA), 'FM999,999,999'),

                          12,

                          ' ')

                 || LPAD (

                       TO_CHAR (SUM (DISK_READS_DELTA),

                                'FM999,999,999,999,999'),

                       20,

                       ' ')

                 || LPAD (

                       TO_CHAR (ROUND (SUM (ELAPSED_TIME_DELTA) / 1000000, 1),

                                'FM999,999,999.9'),

                       15,

                       ' ')

                 || LPAD (

                       TO_CHAR (ROUND (SUM (CLWAIT_DELTA) / 1000000, 1),

                                'FM999,999,999.9'),

                       14,

                       ' ')

                 || LPAD (

                       TO_CHAR (ROUND (SUM (APWAIT_DELTA) / 1000000, 1),

                                'FM999,999,999.9'),

                       14,

                       ' ')

                 || LPAD (

                       TO_CHAR (

                          ROUND (

                             SUM (ROWS_PROCESSED_DELTA)

                             / DECODE (SUM (EXECUTIONS_DELTA),

                                       0, 1,

                                       SUM (EXECUTIONS_DELTA)),

                             1),

                          'FM999,999,999.9'),

                       15,

                       ' ')

                 || LPAD (

                       TO_CHAR (

                          ROUND (

                             SUM (DISK_READS_DELTA)

                             / DECODE (SUM (EXECUTIONS_DELTA),

                                       0, 1,

                                       SUM (EXECUTIONS_DELTA)),

                             0),

                          'FM999,999,999,999.9'),

                       15,

                       ' ')

                 || LPAD (

                       TO_CHAR (

                          ROUND (

                             (SUM (ELAPSED_TIME_DELTA) / 1000000)

                             / DECODE (SUM (EXECUTIONS_DELTA),

                                       0, 1,

                                       SUM (EXECUTIONS_DELTA)),

                             1),

                          'FM999,999.9'),

                       14,

                       ' ')

                 || LPAD (

                       TO_CHAR (

                          ROUND (

                             (SUM (CLWAIT_DELTA) / 1000000)

                             / DECODE (SUM (EXECUTIONS_DELTA),

                                       0, 1,

                                       SUM (EXECUTIONS_DELTA)),

                             1),

                          'FM999,999.9'),

                       14,

                       ' ')

                 || LPAD (

                       TO_CHAR (

                          ROUND (

                             (SUM (APWAIT_DELTA) / 1000000)

                             / DECODE (SUM (EXECUTIONS_DELTA),

                                       0, 1,

                                       SUM (EXECUTIONS_DELTA)),

                             1),

                          'FM999,999.9'),

                       14,

                       ' ')

                    A

            FROM DBA_HIST_SQLSTAT DHSQL, DBA_HIST_SNAPSHOT DHSS

           WHERE     DHSQL.DBID = (select dbid from v$database) --변경 

                 AND DHSQL.INSTANCE_NUMBER = (select  INSTANCE_NUMBER from v$instance)  --변경

                 AND DHSQL.SQL_ID = :3

                 AND DHSS.DBID = DHSQL.DBID

                 AND DHSS.SNAP_ID = DHSQL.SNAP_ID

                 AND DHSS.INSTANCE_NUMBER = DHSQL.INSTANCE_NUMBER

        GROUP BY TO_CHAR (END_INTERVAL_TIME, 'YYYY.MM.DD')

        ORDER BY 1);


블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,

Oracle Top 10 Event 추출 스크립트



   SELECT SNAP_TIME,

         TO_CHAR (SUM (DECODE (RNK, 1, VALUE)), 'FM999,999,999,999.999')

            "VALUE Per SEC_1",

         TO_CHAR (SUM (DECODE (RNK, 2, VALUE)), 'FM999,999,999,999.999')

            "VALUE Per SEC_2",

         TO_CHAR (SUM (DECODE (RNK, 3, VALUE)), 'FM999,999,999,999.999')

            "VALUE Per SEC_3",

         TO_CHAR (SUM (DECODE (RNK, 4, VALUE)), 'FM999,999,999,999.999')

            "VALUE Per SEC_4",

         TO_CHAR (SUM (DECODE (RNK, 5, VALUE)), 'FM999,999,999,999.999')

            "VALUE Per SEC_5",

         TO_CHAR (SUM (DECODE (RNK, 6, VALUE)), 'FM999,999,999,999.999')

            "VALUE Per SEC_6",

         TO_CHAR (SUM (DECODE (RNK, 7, VALUE)), 'FM999,999,999,999.999')

            "VALUE Per SEC_7",

         TO_CHAR (SUM (DECODE (RNK, 8, VALUE)), 'FM999,999,999,999.999')

            "VALUE Per SEC_8",

         TO_CHAR (SUM (DECODE (RNK, 9, VALUE)), 'FM999,999,999,999.999')

            "VALUE Per SEC_9",

         TO_CHAR (SUM (DECODE (RNK, 10, VALUE)), 'FM999,999,999,999.999')

            "VALUE Per SEC_10",

         TO_CHAR (SUM (DECODE (RNK, 11, VALUE)), 'FM999,999,999,999.999')

            "VALUE Per SEC_ETC",

         TO_CHAR (SUM (DECODE (RNK, 1, VALUE_DIFF)), 'FM999,999,999,999,999')

            VALUE_DIFF_1,

         TO_CHAR (SUM (DECODE (RNK, 2, VALUE_DIFF)), 'FM999,999,999,999,999')

            VALUE_DIFF_2,

         TO_CHAR (SUM (DECODE (RNK, 3, VALUE_DIFF)), 'FM999,999,999,999,999')

            VALUE_DIFF_3,

         TO_CHAR (SUM (DECODE (RNK, 4, VALUE_DIFF)), 'FM999,999,999,999,999')

            VALUE_DIFF_4,

         TO_CHAR (SUM (DECODE (RNK, 5, VALUE_DIFF)), 'FM999,999,999,999,999')

            VALUE_DIFF_5,

         TO_CHAR (SUM (DECODE (RNK, 6, VALUE_DIFF)), 'FM999,999,999,999,999')

            VALUE_DIFF_6,

         TO_CHAR (SUM (DECODE (RNK, 7, VALUE_DIFF)), 'FM999,999,999,999,999')

            VALUE_DIFF_7,

         TO_CHAR (SUM (DECODE (RNK, 8, VALUE_DIFF)), 'FM999,999,999,999,999')

            VALUE_DIFF_8,

         TO_CHAR (SUM (DECODE (RNK, 9, VALUE_DIFF)), 'FM999,999,999,999,999')

            VALUE_DIFF_9,

         TO_CHAR (SUM (DECODE (RNK, 10, VALUE_DIFF)), 'FM999,999,999,999,999')

            VALUE_DIFF_10,

         TO_CHAR (SUM (DECODE (RNK, 11, VALUE_DIFF)), 'FM999,999,999,999,999')

            VALUE_DIFF_ETC

    FROM (SELECT A.EVENT_NAME,

                 B.EVENT_NAME B_EVENT_NAME,

                 A.SNAP_TIME,

                 A.VALUE,

                 A.VALUE_DIFF,

                 B.RNK RNK

            FROM (SELECT EVENT_NAME,

                         DECODE (G1, 1, 'SUB AVG', SNAP_TIME) SNAP_TIME,

                         VALUE,

                         VALUE_DIFF

                    FROM (  SELECT EVENT_NAME,

                                   END_TIME SNAP_TIME,

                                   AVG (NVL (VALUE, 0)) VALUE,

                                   AVG (NVL (VALUE_DIFF, 0)) VALUE_DIFF,

                                   GROUPING (END_TIME) G1,

                                   GROUPING (EVENT_NAME) G2

                              FROM (SELECT EVENT_NAME,

                                           TO_CHAR (SNAP_TIME_C1,

                                                    'MM.DD HH24:MI')

                                              START_TIME,

                                           TO_CHAR (SNAP_TIME_C2,

                                                    'MM.DD HH24:MI')

                                              END_TIME,

                                           DECODE (

                                              SNAP_TIME_C2,

                                              NULL, 0,

                                              (CASE

                                                  WHEN VALUE_2 < VALUE_1 THEN 0

                                                  ELSE VALUE_2 - VALUE_1

                                               END)

                                              / (1000000

                                                 * (EXTRACT (

                                                       DAY FROM SNAP_TIME_C2

                                                                - SNAP_TIME_C1)

                                                    * 86400

                                                    + EXTRACT (

                                                         HOUR FROM SNAP_TIME_C2

                                                                   - SNAP_TIME_C1)

                                                      * 3600

                                                    + EXTRACT (

                                                         MINUTE FROM SNAP_TIME_C2

                                                                     - SNAP_TIME_C1)

                                                      * 60

                                                    + EXTRACT (

                                                         SECOND FROM SNAP_TIME_C2

                                                                     - SNAP_TIME_C1))))

                                              VALUE,

                                           (CASE

                                               WHEN VALUE_2 < VALUE_1 THEN 0

                                               ELSE VALUE_2 - VALUE_1

                                            END)

                                           / 1000000

                                              VALUE_DIFF,

                                           ROW_NUMBER ()

                                           OVER (

                                              PARTITION BY INSTANCE_NUMBER,

                                                           EVENT_NAME

                                              ORDER BY SNAP_ID)

                                              RNUM,

                                           SNAP_ID,

                                           INSTANCE_NUMBER

                                      FROM (  SELECT SNAP.END_INTERVAL_TIME

                                                        SNAP_TIME_C1,

                                                     LEAD (

                                                        SNAP.END_INTERVAL_TIME)

                                                     OVER (

                                                        PARTITION BY DBI.INSTANCE_NUMBER,

                                                                     EVENT_NAME

                                                        ORDER BY SNAP.SNAP_ID)

                                                        SNAP_TIME_C2,

                                                     EVENT.EVENT_NAME,

                                                     EVENT.TIME_WAITED_MICRO

                                                        VALUE_1,

                                                     LEAD (

                                                        EVENT.TIME_WAITED_MICRO)

                                                     OVER (

                                                        PARTITION BY DBI.INSTANCE_NUMBER,

                                                                     EVENT_NAME

                                                        ORDER BY SNAP.SNAP_ID)

                                                        VALUE_2,

                                                     SNAP.SNAP_ID,

                                                     DBI.INSTANCE_NUMBER

                                                FROM (SELECT DI.DBID,

                                                             DI.INSTANCE_NUMBER,

                                                             DI.STARTUP_TIME

                                                        FROM DBA_HIST_DATABASE_INSTANCE DI

                                                       WHERE DI.DBID = (select dbid from v$database) --변경

                                                             AND DI.INSTANCE_NUMBER =(select  INSTANCE_NUMBER from v$instance)  --변경

                                                             AND ROWNUM <= 1) DBI,

                                                     DBA_HIST_SNAPSHOT SNAP,

                                                     DBA_HIST_SYSTEM_EVENT EVENT

                                               WHERE DBI.DBID = SNAP.DBID

                                                     AND DBI.INSTANCE_NUMBER =

                                                            SNAP.INSTANCE_NUMBER

                                                     AND SNAP.SNAP_ID >= :3

                                                     AND SNAP.SNAP_ID <= :4

                                                     AND SNAP.DBID = EVENT.DBID

                                                     AND SNAP.INSTANCE_NUMBER =

                                                            EVENT.INSTANCE_NUMBER

                                                     AND SNAP.SNAP_ID =

                                                            EVENT.SNAP_ID

                                                     AND UPPER (EVENT.WAIT_CLASS) <>

                                                            'IDLE'

                                            ORDER BY SNAP.SNAP_ID))

                             WHERE START_TIME IS NOT NULL

                                   AND END_TIME IS NOT NULL

                          GROUP BY ROLLUP (EVENT_NAME, END_TIME))

                   WHERE NOT (G1 = 1 AND G2 = 1)) A,

                 (SELECT EVENT_NAME, RNK

                    FROM (SELECT EVENT_NAME, RNK

                            FROM (SELECT EVENT_NAME,

                                         RANK ()

                                         OVER (

                                            ORDER BY

                                               VALUE_DIFF DESC,

                                               EVENT_NAME ASC NULLS LAST)

                                            RNK

                                    FROM (SELECT EVENT_NAME,

                                                 DECODE (G1,

                                                         1, 'SUB AVG',

                                                         SNAP_TIME)

                                                    SNAP_TIME,

                                                 VALUE,

                                                 VALUE_DIFF

                                            FROM (  SELECT EVENT_NAME,

                                                           END_TIME SNAP_TIME,

                                                           AVG (NVL (VALUE, 0))

                                                              VALUE,

                                                           AVG (

                                                              NVL (VALUE_DIFF, 0))

                                                              VALUE_DIFF,

                                                           GROUPING (END_TIME) G1,

                                                           GROUPING (EVENT_NAME)

                                                              G2

                                                      FROM (SELECT EVENT_NAME,

                                                                   TO_CHAR (

                                                                      SNAP_TIME_C1,

                                                                      'MM.DD HH24:MI')

                                                                      START_TIME,

                                                                   TO_CHAR (

                                                                      SNAP_TIME_C2,

                                                                      'MM.DD HH24:MI')

                                                                      END_TIME,

                                                                   DECODE (

                                                                      SNAP_TIME_C2,

                                                                      NULL, 0,

                                                                      (CASE

                                                                          WHEN VALUE_2 <

                                                                                  VALUE_1

                                                                          THEN

                                                                             0

                                                                          ELSE

                                                                             VALUE_2

                                                                             - VALUE_1

                                                                       END)

                                                                      / (1000000

                                                                         * (EXTRACT (

                                                                               DAY FROM SNAP_TIME_C2

                                                                                        - SNAP_TIME_C1)

                                                                            * 86400

                                                                            + EXTRACT (

                                                                                 HOUR FROM SNAP_TIME_C2

                                                                                           - SNAP_TIME_C1)

                                                                              * 3600

                                                                            + EXTRACT (

                                                                                 MINUTE FROM SNAP_TIME_C2

                                                                                             - SNAP_TIME_C1)

                                                                              * 60

                                                                            + EXTRACT (

                                                                                 SECOND FROM SNAP_TIME_C2

                                                                                             - SNAP_TIME_C1))))

                                                                      VALUE,

                                                                   (CASE

                                                                       WHEN VALUE_2 <

                                                                               VALUE_1

                                                                       THEN

                                                                          0

                                                                       ELSE

                                                                          VALUE_2

                                                                          - VALUE_1

                                                                    END)

                                                                   / 1000000

                                                                      VALUE_DIFF,

                                                                   ROW_NUMBER ()

                                                                   OVER (

                                                                      PARTITION BY INSTANCE_NUMBER,

                                                                                   EVENT_NAME

                                                                      ORDER BY

                                                                         SNAP_ID)

                                                                      RNUM,

                                                                   SNAP_ID,

                                                                   INSTANCE_NUMBER

                                                              FROM (  SELECT SNAP.END_INTERVAL_TIME

                                                                                SNAP_TIME_C1,

                                                                             LEAD (

                                                                                SNAP.END_INTERVAL_TIME)

                                                                             OVER (

                                                                                PARTITION BY DBI.INSTANCE_NUMBER,

                                                                                             EVENT_NAME

                                                                                ORDER BY

                                                                                   SNAP.SNAP_ID)

                                                                                SNAP_TIME_C2,

                                                                             EVENT.EVENT_NAME,

                                                                             EVENT.TIME_WAITED_MICRO

                                                                                VALUE_1,

                                                                             LEAD (

                                                                                EVENT.TIME_WAITED_MICRO)

                                                                             OVER (

                                                                                PARTITION BY DBI.INSTANCE_NUMBER,

                                                                                             EVENT_NAME

                                                                                ORDER BY

                                                                                   SNAP.SNAP_ID)

                                                                                VALUE_2,

                                                                             SNAP.SNAP_ID,

                                                                             DBI.INSTANCE_NUMBER

                                                                        FROM (SELECT DI.DBID,

                                                                                     DI.INSTANCE_NUMBER,

                                                                                     DI.STARTUP_TIME

                                                                                FROM DBA_HIST_DATABASE_INSTANCE DI

                                                                               WHERE DI.DBID =(select dbid from v$database) --변경

                                                                                     AND DI.INSTANCE_NUMBER =(select  INSTANCE_NUMBER from v$instance)  --변경

                                                                                     AND ROWNUM <=

                                                                                            1) DBI,

                                                                             DBA_HIST_SNAPSHOT SNAP,

                                                                             DBA_HIST_SYSTEM_EVENT EVENT

                                                                       WHERE DBI.DBID = SNAP.DBID

                                                                             AND DBI.INSTANCE_NUMBER = SNAP.INSTANCE_NUMBER

                                                                             AND SNAP.SNAP_ID >=

                                                                                    :7

                                                                             AND SNAP.SNAP_ID <=

                                                                                    :8

                                                                             AND SNAP.DBID =

                                                                                    EVENT.DBID

                                                                             AND SNAP.INSTANCE_NUMBER =

                                                                                    EVENT.INSTANCE_NUMBER

                                                                             AND SNAP.SNAP_ID =

                                                                                    EVENT.SNAP_ID

                                                                             AND UPPER (

                                                                                    EVENT.WAIT_CLASS) <>

                                                                                    'IDLE'

                                                                    ORDER BY SNAP.SNAP_ID))

                                                     WHERE START_TIME IS NOT NULL

                                                           AND END_TIME

                                                                  IS NOT NULL

                                                  GROUP BY ROLLUP (EVENT_NAME,

                                                                   END_TIME))

                                           WHERE NOT (G1 = 1 AND G2 = 1))

                                   WHERE SNAP_TIME = 'SUB AVG')

                           WHERE RNK <= 10)) B

           WHERE A.EVENT_NAME = B.EVENT_NAME

          UNION ALL

            SELECT ' 나머지 Event Sum' EVENT_NAME,

                   NULL B_EVENT_NAME,

                   A.SNAP_TIME,

                   SUM (A.VALUE) VALUE,

                   SUM (A.VALUE_DIFF) VALUE_DIFF,

                   11 RNK

              FROM (SELECT EVENT_NAME,

                           DECODE (G1, 1, 'SUB AVG', SNAP_TIME) SNAP_TIME,

                           VALUE,

                           VALUE_DIFF

                      FROM (  SELECT EVENT_NAME,

                                     END_TIME SNAP_TIME,

                                     AVG (NVL (VALUE, 0)) VALUE,

                                     AVG (NVL (VALUE_DIFF, 0)) VALUE_DIFF,

                                     GROUPING (END_TIME) G1,

                                     GROUPING (EVENT_NAME) G2

                                FROM (SELECT EVENT_NAME,

                                             TO_CHAR (SNAP_TIME_C1,

                                                      'MM.DD HH24:MI')

                                                START_TIME,

                                             TO_CHAR (SNAP_TIME_C2,

                                                      'MM.DD HH24:MI')

                                                END_TIME,

                                             DECODE (

                                                SNAP_TIME_C2,

                                                NULL, 0,

                                                (CASE

                                                    WHEN VALUE_2 < VALUE_1 THEN 0

                                                    ELSE VALUE_2 - VALUE_1

                                                 END)

                                                / (1000000

                                                   * (EXTRACT (

                                                         DAY FROM SNAP_TIME_C2

                                                                  - SNAP_TIME_C1)

                                                      * 86400

                                                      + EXTRACT (

                                                           HOUR FROM SNAP_TIME_C2

                                                                     - SNAP_TIME_C1)

                                                        * 3600

                                                      + EXTRACT (

                                                           MINUTE FROM SNAP_TIME_C2

                                                                       - SNAP_TIME_C1)

                                                        * 60

                                                      + EXTRACT (

                                                           SECOND FROM SNAP_TIME_C2

                                                                       - SNAP_TIME_C1))))

                                                VALUE,

                                             (CASE

                                                 WHEN VALUE_2 < VALUE_1 THEN 0

                                                 ELSE VALUE_2 - VALUE_1

                                              END)

                                             / 1000000

                                                VALUE_DIFF,

                                             ROW_NUMBER ()

                                             OVER (

                                                PARTITION BY INSTANCE_NUMBER,

                                                             EVENT_NAME

                                                ORDER BY SNAP_ID)

                                                RNUM,

                                             SNAP_ID,

                                             INSTANCE_NUMBER

                                        FROM (  SELECT SNAP.END_INTERVAL_TIME

                                                          SNAP_TIME_C1,

                                                       LEAD (

                                                          SNAP.END_INTERVAL_TIME)

                                                       OVER (

                                                          PARTITION BY DBI.INSTANCE_NUMBER,

                                                                       EVENT_NAME

                                                          ORDER BY SNAP.SNAP_ID)

                                                          SNAP_TIME_C2,

                                                       EVENT.EVENT_NAME,

                                                       EVENT.TIME_WAITED_MICRO

                                                          VALUE_1,

                                                       LEAD (

                                                          EVENT.TIME_WAITED_MICRO)

                                                       OVER (

                                                          PARTITION BY DBI.INSTANCE_NUMBER,

                                                                       EVENT_NAME

                                                          ORDER BY SNAP.SNAP_ID)

                                                          VALUE_2,

                                                       SNAP.SNAP_ID,

                                                       DBI.INSTANCE_NUMBER

                                                  FROM (SELECT DI.DBID,

                                                               DI.INSTANCE_NUMBER,

                                                               DI.STARTUP_TIME

                                                          FROM DBA_HIST_DATABASE_INSTANCE DI

                                                         WHERE DI.DBID = (select dbid from v$database) --변경

                                                               AND DI.INSTANCE_NUMBER =(select  INSTANCE_NUMBER from v$instance)  --변경

                                                               AND ROWNUM <= 1) DBI,

                                                       DBA_HIST_SNAPSHOT SNAP,

                                                       DBA_HIST_SYSTEM_EVENT EVENT

                                                 WHERE DBI.DBID = SNAP.DBID

                                                       AND DBI.INSTANCE_NUMBER =

                                                              SNAP.INSTANCE_NUMBER

                                                       AND SNAP.SNAP_ID >= :11

                                                       AND SNAP.SNAP_ID <= :12

                                                       AND SNAP.DBID = EVENT.DBID

                                                       AND SNAP.INSTANCE_NUMBER =

                                                              EVENT.INSTANCE_NUMBER

                                                       AND SNAP.SNAP_ID =

                                                              EVENT.SNAP_ID

                                                       AND UPPER (EVENT.WAIT_CLASS) <>

                                                              'IDLE'

                                              ORDER BY SNAP.SNAP_ID))

                               WHERE START_TIME IS NOT NULL

                                     AND END_TIME IS NOT NULL

                            GROUP BY ROLLUP (EVENT_NAME, END_TIME))

                     WHERE NOT (G1 = 1 AND G2 = 1)) A

             WHERE A.EVENT_NAME NOT IN (SELECT EVENT_NAME

                                          FROM (SELECT EVENT_NAME, RNK

                                                  FROM (SELECT EVENT_NAME, RNK

                                                          FROM (SELECT EVENT_NAME,

                                                                       RANK ()

                                                                       OVER (

                                                                          ORDER BY

                                                                             VALUE_DIFF DESC,

                                                                             EVENT_NAME ASC NULLS LAST)

                                                                          RNK

                                                                  FROM (SELECT EVENT_NAME,

                                                                               DECODE (

                                                                                  G1,

                                                                                  1, 'SUB AVG',

                                                                                  SNAP_TIME)

                                                                                  SNAP_TIME,

                                                                               VALUE,

                                                                               VALUE_DIFF

                                                                          FROM (  SELECT EVENT_NAME,

                                                                                         END_TIME

                                                                                            SNAP_TIME,

                                                                                         AVG (

                                                                                            NVL (

                                                                                               VALUE,

                                                                                               0))

                                                                                            VALUE,

                                                                                         AVG (

                                                                                            NVL (

                                                                                               VALUE_DIFF,

                                                                                               0))

                                                                                            VALUE_DIFF,

                                                                                         GROUPING (

                                                                                            END_TIME)

                                                                                            G1,

                                                                                         GROUPING (

                                                                                            EVENT_NAME)

                                                                                            G2

                                                                                    FROM (SELECT EVENT_NAME,

                                                                                                 TO_CHAR (

                                                                                                    SNAP_TIME_C1,

                                                                                                    'MM.DD HH24:MI')

                                                                                                    START_TIME,

                                                                                                 TO_CHAR (

                                                                                                    SNAP_TIME_C2,

                                                                                                    'MM.DD HH24:MI')

                                                                                                    END_TIME,

                                                                                                 DECODE (

                                                                                                    SNAP_TIME_C2,

                                                                                                    NULL, 0,

                                                                                                    (CASE

                                                                                                        WHEN VALUE_2 <

                                                                                                                VALUE_1

                                                                                                        THEN

                                                                                                           0

                                                                                                        ELSE

                                                                                                           VALUE_2

                                                                                                           - VALUE_1

                                                                                                     END)

                                                                                                    / (1000000

                                                                                                       * (EXTRACT (

                                                                                                             DAY FROM SNAP_TIME_C2

                                                                                                                      - SNAP_TIME_C1)

                                                                                                          * 86400

                                                                                                          + EXTRACT (

                                                                                                               HOUR FROM SNAP_TIME_C2

                                                                                                                         - SNAP_TIME_C1)

                                                                                                            * 3600

                                                                                                          + EXTRACT (

                                                                                                               MINUTE FROM SNAP_TIME_C2

                                                                                                                           - SNAP_TIME_C1)

                                                                                                            * 60

                                                                                                          + EXTRACT (

                                                                                                               SECOND FROM SNAP_TIME_C2

                                                                                                                           - SNAP_TIME_C1))))

                                                                                                    VALUE,

                                                                                                 (CASE

                                                                                                     WHEN VALUE_2 <

                                                                                                             VALUE_1

                                                                                                     THEN

                                                                                                        0

                                                                                                     ELSE

                                                                                                        VALUE_2

                                                                                                        - VALUE_1

                                                                                                  END)

                                                                                                 / 1000000

                                                                                                    VALUE_DIFF,

                                                                                                 ROW_NUMBER ()

                                                                                                 OVER (

                                                                                                    PARTITION BY INSTANCE_NUMBER,

                                                                                                                 EVENT_NAME

                                                                                                    ORDER BY

                                                                                                       SNAP_ID)

                                                                                                    RNUM,

                                                                                                 SNAP_ID,

                                                                                                 INSTANCE_NUMBER

                                                                                            FROM (  SELECT SNAP.END_INTERVAL_TIME

                                                                                                              SNAP_TIME_C1,

                                                                                                           LEAD (

                                                                                                              SNAP.END_INTERVAL_TIME)

                                                                                                           OVER (

                                                                                                              PARTITION BY DBI.INSTANCE_NUMBER,

                                                                                                                           EVENT_NAME

                                                                                                              ORDER BY

                                                                                                                 SNAP.SNAP_ID)

                                                                                                              SNAP_TIME_C2,

                                                                                                           EVENT.EVENT_NAME,

                                                                                                           EVENT.TIME_WAITED_MICRO

                                                                                                              VALUE_1,

                                                                                                           LEAD (

                                                                                                              EVENT.TIME_WAITED_MICRO)

                                                                                                           OVER (

                                                                                                              PARTITION BY DBI.INSTANCE_NUMBER,

                                                                                                                           EVENT_NAME

                                                                                                              ORDER BY

                                                                                                                 SNAP.SNAP_ID)

                                                                                                              VALUE_2,

                                                                                                           SNAP.SNAP_ID,

                                                                                                           DBI.INSTANCE_NUMBER

                                                                                                      FROM (SELECT DI.DBID,

                                                                                                                   DI.INSTANCE_NUMBER,

                                                                                                                   DI.STARTUP_TIME

                                                                                                              FROM DBA_HIST_DATABASE_INSTANCE DI

                                                                                                             WHERE DI.DBID =(select dbid from v$database) --변경 

                                                                                                                   AND DI.INSTANCE_NUMBER =(select  INSTANCE_NUMBER from v$instance)  --변경

                                                                                                                   AND ROWNUM <=

                                                                                                                          1) DBI,

                                                                                                           DBA_HIST_SNAPSHOT SNAP,

                                                                                                           DBA_HIST_SYSTEM_EVENT EVENT

                                                                                                     WHERE DBI.DBID =

                                                                                                              SNAP.DBID

                                                                                                           AND DBI.INSTANCE_NUMBER =

                                                                                                                  SNAP.INSTANCE_NUMBER

                                                                                                           AND SNAP.SNAP_ID >=

                                                                                                                  :15

                                                                                                           AND SNAP.SNAP_ID <=

                                                                                                                  :16

                                                                                                           AND SNAP.DBID =

                                                                                                                  EVENT.DBID

                                                                                                           AND SNAP.INSTANCE_NUMBER =

                                                                                                                  EVENT.INSTANCE_NUMBER

                                                                                                           AND SNAP.SNAP_ID =

                                                                                                                  EVENT.SNAP_ID

                                                                                                           AND UPPER (

                                                                                                                  EVENT.WAIT_CLASS) <>

                                                                                                                  'IDLE'

                                                                                                  ORDER BY SNAP.SNAP_ID))

                                                                                   WHERE START_TIME

                                                                                            IS NOT NULL

                                                                                         AND END_TIME

                                                                                                IS NOT NULL

                                                                                GROUP BY ROLLUP (EVENT_NAME,

                                                                                                 END_TIME))

                                                                         WHERE NOT (G1 =

                                                                                       1

                                                                                    AND G2 =

                                                                                           1))

                                                                 WHERE SNAP_TIME =

                                                                          'SUB AVG')

                                                         WHERE RNK <= 10)) B)

          GROUP BY A.SNAP_TIME, A.SNAP_TIME

          ORDER BY RNK, SNAP_TIME)

GROUP BY SNAP_TIME

ORDER BY SNAP_TIME;



블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,


Oracle DB AWR 활용하여 IO 성능 조회 스크립트



  

SELECT SNAP_TIME,         SNAP_TIME_RANGE,

         TO_CHAR (SUM (DECODE (STAT_NAME, 'session logical reads', VALUE)),

                  'FM999,999,999,999.9')

            "Session Logical Reads/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'physical reads', VALUE)),

                  'FM999,999,999.9')

            "Physical Reads/Sec",

         TO_CHAR (

            SUM (DECODE (STAT_NAME, 'physical read total IO requests', VALUE))

            + SUM (

                 DECODE (STAT_NAME, 'physical write total IO requests', VALUE)),

            'FM999,999,999.9')

            "IOPS",

         TO_CHAR (

            (SUM (DECODE (STAT_NAME, 'physical read total bytes', VALUE))

             + SUM (DECODE (STAT_NAME, 'physical write total bytes', VALUE)))

            / 1024

            / 1024,

            'FM999,999,999.99')

            "MBPS",

         TO_CHAR (

            GREATEST (

               LEAST (

                  (1

                   - (SUM (DECODE (STAT_NAME, 'physical reads', VALUE))

                      - SUM (

                           DECODE (STAT_NAME, 'physical reads direct', VALUE))

                      - SUM (

                           DECODE (STAT_NAME,

                                   'physical reads direct (lob)', VALUE)))

                     / DECODE (

                          (SUM (

                              DECODE (STAT_NAME,

                                      'session logical reads', VALUE))

                           - SUM (

                                DECODE (STAT_NAME,

                                        'physical reads direct', VALUE))

                           - SUM (

                                DECODE (STAT_NAME,

                                        'physical reads direct (lob)', VALUE))),

                          0, 1,

                          (SUM (

                              DECODE (STAT_NAME,

                                      'session logical reads', VALUE))

                           - SUM (

                                DECODE (STAT_NAME,

                                        'physical reads direct', VALUE))

                           - SUM (

                                DECODE (STAT_NAME,

                                        'physical reads direct (lob)', VALUE)))))

                  * 100,

                  100),

               0),

            'FM999.99')

            "Buffer Cache Hit Ratio(%)",

         TO_CHAR (

            NVL (SUM (DECODE (STAT_NAME, 'db file sequential read', WAITS)), 0),

            'FM999,999,999.99')

            "db file sequential r avg.(ms)",

         TO_CHAR (

            NVL (SUM (DECODE (STAT_NAME, 'db file scattered read', WAITS)), 0),

            'FM999,999,999.99')

            "db file scattered r avg.(ms)",

         TO_CHAR (

            NVL (SUM (DECODE (STAT_NAME, 'db file parallel write', WAITS)), 0),

            'FM999,999,999.99')

            "db file parallel w avg.(ms)",

         TO_CHAR (

            NVL (SUM (DECODE (STAT_NAME, 'log file parallel write', WAITS)), 0),

            'FM999,999,999.99')

            "log file parallel w avg.(ms)",

         TO_CHAR (NVL (SUM (DECODE (STAT_NAME, 'log file sync', WAITS)), 0),

                  'FM999,999,999.99')

            "log file sync avg.(ms)",

         TO_CHAR (

            SUM (DECODE (STAT_NAME, 'physical read total IO requests', VALUE)),

            'FM999,999,999,999.9')

            "Physical R total IO req./Sec",

         TO_CHAR (

            SUM (DECODE (STAT_NAME, 'physical write total IO requests', VALUE)),

            'FM999,999,999,999.9')

            "Physical W total IO req./Sec",

         TO_CHAR (

              SUM (DECODE (STAT_NAME, 'physical read total bytes', VALUE))

            / 1024

            / 1024,

            'FM999,999,999,999.9')

            "Physical R total MB/Sec",

         TO_CHAR (

              SUM (DECODE (STAT_NAME, 'physical write total bytes', VALUE))

            / 1024

            / 1024,

            'FM999,999,999,999.9')

            "Physical W total MB/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'physical reads direct', VALUE)),

                  'FM999,999,999,999.9')

            "Physical Reads Direct/Sec",

         TO_CHAR (

            SUM (DECODE (STAT_NAME, 'physical reads direct (lob)', VALUE)),

            'FM999,999,999,999.9')

            "Physical Reads Direct(LOB)/Sec"

    FROM (SELECT STAT_NAME,

                 DECODE (G1,

                         1, 'SUB AVG',

                         SUBSTR (SNAP_TIME, 1, INSTR (SNAP_TIME, '-') - 1))

                    SNAP_TIME,

                 SNAP_TIME SNAP_TIME_RANGE,

                 NVL (VALUE, 0) VALUE,

                 NVL (VALUE_DIFF, 0) VALUE_DIFF,

                 NVL (WAITS, 0) WAITS,

                 NVL (WAITS_DIFF, 0) WAITS_DIFF

            FROM (  SELECT STAT_NAME,

                           START_TIME || '-' || END_TIME SNAP_TIME,

                           ROUND (AVG (NVL (VALUE, 0)), 3) VALUE,

                           ROUND (AVG (NVL (VALUE_DIFF, 0)), 3) VALUE_DIFF,

                           ROUND (AVG (NVL (WAITS, 0)), 3) WAITS,

                           ROUND (AVG (NVL (WAITS_DIFF, 0)), 3) WAITS_DIFF,

                           GROUPING (START_TIME || '-' || END_TIME) G1,

                           GROUPING (STAT_NAME) G2

                      FROM (SELECT STAT_NAME,

                                   TO_CHAR (SNAP_TIME_C1, 'MM.DD HH24:MI')

                                      START_TIME,

                                   TO_CHAR (SNAP_TIME_C2, 'MM.DD HH24:MI')

                                      END_TIME,

                                   DECODE (

                                      SNAP_TIME_C2,

                                      NULL, 0,

                                      ROUND (

                                         (CASE

                                             WHEN VALUE_2 < VALUE_1 THEN 0

                                             ELSE VALUE_2 - VALUE_1

                                          END)

                                         / (EXTRACT (

                                               DAY FROM SNAP_TIME_C2

                                                        - SNAP_TIME_C1)

                                            * 86400

                                            + EXTRACT (

                                                 HOUR FROM SNAP_TIME_C2

                                                           - SNAP_TIME_C1)

                                              * 3600

                                            + EXTRACT (

                                                 MINUTE FROM SNAP_TIME_C2

                                                             - SNAP_TIME_C1)

                                              * 60

                                            + EXTRACT (

                                                 SECOND FROM SNAP_TIME_C2

                                                             - SNAP_TIME_C1)),

                                         1))

                                      VALUE,

                                   (CASE

                                       WHEN VALUE_2 < VALUE_1 THEN 0

                                       ELSE VALUE_2 - VALUE_1

                                    END)

                                      VALUE_DIFF,

                                   NULL WAITS,

                                   NULL WAITS_DIFF,

                                   SNAP_ID,

                                   INSTANCE_NUMBER

                              FROM (  SELECT /*+ LEADING(DBI) USE_HASH(SNAP STAT) */

                                            SNAP.END_INTERVAL_TIME

                                                SNAP_TIME_C1,

                                             LEAD (

                                                SNAP.END_INTERVAL_TIME)

                                             OVER (

                                                PARTITION BY DBI.INSTANCE_NUMBER,

                                                             STAT_NAME

                                                ORDER BY SNAP.SNAP_ID)

                                                SNAP_TIME_C2,

                                             STAT.STAT_NAME,

                                             STAT.VALUE VALUE_1,

                                             LEAD (

                                                STAT.VALUE)

                                             OVER (

                                                PARTITION BY DBI.INSTANCE_NUMBER,

                                                             STAT_NAME

                                                ORDER BY SNAP.SNAP_ID)

                                                VALUE_2,

                                             SNAP.SNAP_ID,

                                             DBI.INSTANCE_NUMBER

                                        FROM (SELECT           /*+ NO_MERGE */

                                                    DI.DBID,

                                                     DI.INSTANCE_NUMBER,

                                                     DI.STARTUP_TIME

                                                FROM DBA_HIST_DATABASE_INSTANCE DI

                                               WHERE     DI.DBID = (select dbid from v$database) --변경 

                                                     AND DI.INSTANCE_NUMBER = (select  INSTANCE_NUMBER from v$instance)  --변경

                                                     AND ROWNUM <= 1) DBI,

                                             DBA_HIST_SNAPSHOT SNAP,

                                             DBA_HIST_SYSSTAT STAT

                                       WHERE DBI.DBID = SNAP.DBID

                                             AND DBI.INSTANCE_NUMBER =

                                                    SNAP.INSTANCE_NUMBER

                                             AND DBI.DBID = SNAP.DBID

                                             AND SNAP.SNAP_ID >= :3

                                             AND SNAP.SNAP_ID <= :4

                                             AND SNAP.DBID = STAT.DBID

                                             AND SNAP.INSTANCE_NUMBER =

                                                    STAT.INSTANCE_NUMBER

                                             AND SNAP.SNAP_ID = STAT.SNAP_ID

                                             AND STAT.STAT_NAME IN

                                                    ('session logical reads',

                                                     'physical reads',

                                                     'physical read total IO requests',

                                                     'physical write total IO requests',

                                                     'physical read total bytes',

                                                     'physical write total bytes',

                                                     'physical reads direct',

                                                     'physical reads direct (lob)')

                                    ORDER BY SNAP.SNAP_ID)

                             WHERE SNAP_TIME_C2 <> SNAP_TIME_C1

                            UNION ALL

                            SELECT STAT_NAME,

                                   TO_CHAR (SNAP_TIME_C1, 'MM.DD HH24:MI')

                                      START_TIME,

                                   TO_CHAR (SNAP_TIME_C2, 'MM.DD HH24:MI')

                                      END_TIME,

                                   ROUND (

                                      DECODE (

                                         SNAP_TIME_C2,

                                         NULL, 0,

                                         (CASE

                                             WHEN VALUE_2 < VALUE_1 THEN 0

                                             ELSE VALUE_2 - VALUE_1

                                          END)

                                         / (EXTRACT (

                                               DAY FROM SNAP_TIME_C2

                                                        - SNAP_TIME_C1)

                                            * 86400

                                            + EXTRACT (

                                                 HOUR FROM SNAP_TIME_C2

                                                           - SNAP_TIME_C1)

                                              * 3600

                                            + EXTRACT (

                                                 MINUTE FROM SNAP_TIME_C2

                                                             - SNAP_TIME_C1)

                                              * 60

                                            + EXTRACT (

                                                 SECOND FROM SNAP_TIME_C2

                                                             - SNAP_TIME_C1)))

                                      / 1000000,

                                      3)

                                      VALUE,

                                   ROUND (

                                      (CASE

                                          WHEN VALUE_2 < VALUE_1 THEN 0

                                          ELSE VALUE_2 - VALUE_1

                                       END)

                                      / 1000000,

                                      1)

                                      VALUE_DIFF,

                                   ROUND (

                                      DECODE (

                                         SNAP_TIME_C2,

                                         NULL, 0,

                                         (CASE

                                             WHEN WAITS_2 <= WAITS_1 THEN 0

                                             ELSE VALUE_2 - VALUE_1

                                          END)

                                         / (WAITS_2 - WAITS_1))

                                      / 1000,

                                      3)

                                      WAITS,

                                   ROUND (

                                      (CASE

                                          WHEN WAITS_2 <= WAITS_1 THEN 0

                                          ELSE WAITS_2 - WAITS_1

                                       END),

                                      1)

                                      WAITS_DIFF,

                                   SNAP_ID,

                                   INSTANCE_NUMBER

                              FROM (  SELECT SNAP.END_INTERVAL_TIME SNAP_TIME_C1,

                                             LEAD (

                                                SNAP.END_INTERVAL_TIME)

                                             OVER (

                                                PARTITION BY DBI.INSTANCE_NUMBER,

                                                             EVENT_NAME

                                                ORDER BY SNAP.SNAP_ID)

                                                SNAP_TIME_C2,

                                             STAT.EVENT_NAME STAT_NAME,

                                             STAT.TIME_WAITED_MICRO VALUE_1,

                                             LEAD (

                                                STAT.TIME_WAITED_MICRO)

                                             OVER (

                                                PARTITION BY DBI.INSTANCE_NUMBER,

                                                             EVENT_NAME

                                                ORDER BY SNAP.SNAP_ID)

                                                VALUE_2,

                                             STAT.TOTAL_WAITS WAITS_1,

                                             LEAD (

                                                STAT.TOTAL_WAITS)

                                             OVER (

                                                PARTITION BY DBI.INSTANCE_NUMBER,

                                                             EVENT_NAME

                                                ORDER BY SNAP.SNAP_ID)

                                                WAITS_2,

                                             SNAP.SNAP_ID,

                                             DBI.INSTANCE_NUMBER

                                        FROM (SELECT DI.DBID,

                                                     DI.INSTANCE_NUMBER,

                                                     DI.STARTUP_TIME

                                                FROM DBA_HIST_DATABASE_INSTANCE DI

                                               WHERE     DI.DBID = (select dbid from v$database) --변경 

                                                     AND DI.INSTANCE_NUMBER = (select  INSTANCE_NUMBER from v$instance)  --변경

                                                     AND ROWNUM <= 1) DBI,

                                             DBA_HIST_SNAPSHOT SNAP,

                                             DBA_HIST_SYSTEM_EVENT STAT

                                       WHERE DBI.DBID = SNAP.DBID

                                             AND DBI.INSTANCE_NUMBER =

                                                    SNAP.INSTANCE_NUMBER

                                             AND SNAP.SNAP_ID >= :7

                                             AND SNAP.SNAP_ID <= :8

                                             AND SNAP.DBID = STAT.DBID

                                             AND SNAP.INSTANCE_NUMBER =

                                                    STAT.INSTANCE_NUMBER

                                             AND SNAP.SNAP_ID = STAT.SNAP_ID

                                             AND STAT.EVENT_NAME IN

                                                    ('db file sequential read',

                                                     'db file scattered read',

                                                     'db file parallel write',

                                                     'log file parallel write',

                                                     'log file sync')

                                    ORDER BY SNAP.SNAP_ID)

                             WHERE SNAP_TIME_C2 <> SNAP_TIME_C1

                                   AND WAITS_2 <> WAITS_1)

                     WHERE START_TIME IS NOT NULL AND END_TIME IS NOT NULL

                  GROUP BY ROLLUP (STAT_NAME, START_TIME || '-' || END_TIME))

           WHERE NOT (G1 = 1 AND G2 = 1))

GROUP BY SNAP_TIME, SNAP_TIME_RANGE

ORDER BY SNAP_TIME




블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,

Oracle DB 기본 상태 조회 스크립트



 

SELECT 'MEASURE TIME' FTYPE,

       TO_CHAR (SYSDATE, 'YYYY.MM.DD HH24:MI:SS') NAME,

       NULL VALUE,

       NULL NOTE

  FROM DUAL

UNION ALL

SELECT 'CURRENT SCN' FTYPE,

       TO_CHAR (CURRENT_SCN, 'FM999,999,999,999,999,999,999') NAME,

       NULL,

       NULL

  FROM GV$DATABASE

 WHERE INST_ID = (select INST_ID from GV$DATABASE)  

UNION ALL

SELECT 'DB_NAME' FTYPE,

       DB_NAME,

       NULL VALUE,

       NULL VTYPE

  FROM DBA_HIST_DATABASE_INSTANCE

 WHERE INSTANCE_NUMBER = (select INSTANCE_NUMBER from v$instance)   

       AND STARTUP_TIME = TO_DATE (20180217091655, 'YYYYMMDDHH24MISS') 

UNION ALL

SELECT 'DBID' FTYPE,

       TO_CHAR (DBID) NAME,

       NULL,

       NULL

  FROM DBA_HIST_DATABASE_INSTANCE

 WHERE INSTANCE_NUMBER = (select INSTANCE_NUMBER from v$instance)  

       AND STARTUP_TIME = TO_DATE (20180217091655, 'YYYYMMDDHH24MISS') 

UNION ALL

SELECT 'INSTANCE NUMBER' FTYPE,

       TO_CHAR (INSTANCE_NUMBER) NAME,

       NULL,

       NULL

  FROM DBA_HIST_DATABASE_INSTANCE

 WHERE INSTANCE_NUMBER = (select INSTANCE_NUMBER from v$instance)  

       AND STARTUP_TIME = TO_DATE (20180217091655, 'YYYYMMDDHH24MISS')

UNION ALL

SELECT 'INSTANCE NAME' FTYPE,

       INSTANCE_NAME NAME,

       NULL,

       NULL

  FROM DBA_HIST_DATABASE_INSTANCE

 WHERE INSTANCE_NUMBER = (select INSTANCE_NUMBER from v$instance)  

       AND STARTUP_TIME = TO_DATE (20180217091655, 'YYYYMMDDHH24MISS')

UNION ALL

SELECT 'HOST NAME' FTYPE,

       HOST_NAME NAME,

       NULL,

       NULL

  FROM DBA_HIST_DATABASE_INSTANCE

 WHERE INSTANCE_NUMBER = (select INSTANCE_NUMBER from v$instance)  

       AND STARTUP_TIME = TO_DATE (20180217091655, 'YYYYMMDDHH24MISS')

UNION ALL

SELECT 'STARTUP TIME' FTYPE,

       TO_CHAR (STARTUP_TIME, 'YYYY.MM.DD HH24:MI:SS') NAME,

       NULL,

       NULL

  FROM DBA_HIST_DATABASE_INSTANCE

 WHERE INSTANCE_NUMBER = (select INSTANCE_NUMBER from v$instance)  

       AND STARTUP_TIME = TO_DATE (20180217091655, 'YYYYMMDDHH24MISS')

UNION ALL

SELECT 'VERSION' FTYPE,

       VERSION NAME,

       NULL,

       NULL

  FROM DBA_HIST_DATABASE_INSTANCE

 WHERE INSTANCE_NUMBER = (select INSTANCE_NUMBER from v$instance)  

       AND STARTUP_TIME = TO_DATE (20180217091655, 'YYYYMMDDHH24MISS')

UNION ALL

SELECT 'PARAM' FTYPE,

       PARAMETER_NAME NAME,

       TO_CHAR (VALUE) VALUE,

       NULL

  FROM DBA_HIST_PARAMETER

 WHERE DBID = (select dbid from v$database) 

  AND INSTANCE_NUMBER = (select INSTANCE_NUMBER from v$instance)  

   AND SNAP_ID = 873 

UNION ALL

SELECT 'SGA' FTYPE,

       NAME,

       ROUND (VALUE / 1024 / 1024, 1) || ' MB' VALUE,

       NULL

  FROM DBA_HIST_SGA

 WHERE DBID = (select dbid from v$database) 

  AND INSTANCE_NUMBER = (select INSTANCE_NUMBER from v$instance)  

   AND SNAP_ID = 873 

UNION ALL

SELECT 'PGA' FTYPE,

       NAME,

       ROUND (VALUE / 1024 / 1024, 1) || ' MB' VALUE,

       NULL

  FROM DBA_HIST_PGASTAT

 WHERE DBID = (select dbid from v$database) 

 AND INSTANCE_NUMBER = (select INSTANCE_NUMBER from v$instance)  

  AND SNAP_ID = 873 

UNION ALL

SELECT 'CURRENT SGA' FTYPE,

       NAME,

       ROUND (BYTES / 1024 / 1024, 1) || ' MB' VALUE,

       RESIZEABLE VTYPE

  FROM GV$SGAINFO

 WHERE INST_ID = (select distinct INST_ID from  GV$SGAINFO)  

UNION ALL

SELECT 'CURRENT PGA' FTYPE,

       NAME,

       DECODE (

          UNIT,

          'bytes', TO_CHAR (ROUND (VALUE / 1024 / 1024, 1),

                            'FM999,999,999,999.9'),

          TO_CHAR (VALUE))

          VALUE,

       DECODE (UNIT, 'bytes', 'MB', UNIT) VTYPE

  FROM GV$PGASTAT

 WHERE INST_ID = (select distinct INST_ID from   GV$PGASTAT)  

UNION ALL

SELECT 'CURRENT SIZE : SEGMENT' FTYPE,

       TO_CHAR (SUM (BLOCKS), 'FM999,999,999,999') || ' Blocks',

       TO_CHAR (ROUND ( (SUM (BYTES) / 1024 / 1024 / 1024), 1),

                'FM999,999,999,999')

       || ' GB',

       NULL VTYPE

  FROM DBA_SEGMENTS

UNION ALL

SELECT 'CURRENT SIZE : DATAFILE' FTYPE,

       TO_CHAR (SUM (BLOCKS), 'FM999,999,999,999') || ' Blocks',

       TO_CHAR (ROUND ( (SUM (BYTES) / 1024 / 1024 / 1024), 1),

                'FM999,999,999,999')

       || ' GB',

       NULL VTYPE

  FROM DBA_DATA_FILES

ORDER BY 1, 2;




블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,

Oracle AWR을 활용한 주요 Stats 지표 추출 스크립트



 

해당 시점의 SNAP.SNAP_ID를 설정하여 추출한 데이터를 엑셀 또는 시각화 Tool로 뽑아내여 주요 Stats 상태 분석이 가능하도록 해준다. 각 Stats의 명칭을 조정하여 원하는 DB 상태를 조회해볼수 있다.



  SELECT SNAP_TIME,

         SNAP_TIME_RANGE,

         TO_CHAR (SUM (DECODE (STAT_NAME, 'session logical reads', VALUE)),

                  'FM999,999,999,999.9')

            "Session Logical Reads/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'physical reads', VALUE)),

                  'FM999,999,999.9')

            "Physical Reads/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'execute count', VALUE)),

                  'FM999,999,999.9')

            "Execute Count/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'user calls', VALUE)),

                  'FM999,999,999.9')

            "User Calls/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'user commits', VALUE)),

                  'FM999,999,999.9')

            "User Commits/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'user rollbacks', VALUE)),

                  'FM999,999,999.9')

            "User Rollbacks/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'CPU used by this session', VALUE)),

                  'FM999,999,999.9')

            "CPU used by this session/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'DB time', VALUE)),

                  'FM999,999,999.9')

            "DB time/Sec",

         TO_CHAR (

            (SUM (DECODE (STAT_NAME, 'DB time', VALUE)) * 10)

            / DECODE (SUM (DECODE (STAT_NAME, 'user calls', VALUE)),

                      0, 1,

                      SUM (DECODE (STAT_NAME, 'user calls', VALUE))),

            'FM999,999,999.999')

            "User Response Time(ms)/Sec",

         TO_CHAR (

            (SUM (DECODE (STAT_NAME, 'DB time', VALUE)) * 10)

            / DECODE (

                 (SUM (DECODE (STAT_NAME, 'user commits', VALUE))

                  + SUM (DECODE (STAT_NAME, 'user rollbacks', VALUE))),

                 0, 1,

                 (SUM (DECODE (STAT_NAME, 'user commits', VALUE))

                  + SUM (DECODE (STAT_NAME, 'user rollbacks', VALUE)))),

            'FM999,999,999.999')

            "TX Response Time(ms)/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'application wait time', VALUE)),

                  'FM999,999,999.9')

            "Application Wait Time(cs)/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'cluster wait time', VALUE)),

                  'FM999,999,999.9')

            "Cluster Wait Time(cs)/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'concurrency wait time', VALUE)),

                  'FM999,999,999.9')

            "Concurrency Wait Time(cs)/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'user I/O wait time', VALUE)),

                  'FM999,999,999.9')

            "User I/O Wait Time(cs)/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'CR blocks created', VALUE)),

                  'FM999,999,999.9')

            "CR blocks created/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'consistent gets', VALUE)),

                  'FM999,999,999.9')

            "Consistent Gets/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'consistent changes', VALUE)),

                  'FM999,999,999.9')

            "Consistent Changes/Sec",

         TO_CHAR (

            SUM (

               DECODE (

                  STAT_NAME,

                  'data blocks consistent reads - undo records applied', VALUE)),

            'FM999,999,999.9')

            "DB Blocks cr-undo rec appl/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'db block gets', VALUE)),

                  'FM999,999,999.9')

            "DB Block Gets/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'db block changes', VALUE)),

                  'FM999,999,999.9')

            "DB Block Changes/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'enqueue releases', VALUE)),

                  'FM999,999,999.9')

            "Enqueue Releases/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'enqueue waits', VALUE)),

                  'FM999,999,999.9')

            "Enqueue Waits/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'free buffer inspected', VALUE)),

                  'FM999,999,999.9')

            "Free Buffer Inspected/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'free buffer requested', VALUE)),

                  'FM999,999,999.9')

            "Free Buffer Requested/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'DBWR checkpoints', VALUE)),

                  'FM999,999,999.9')

            "DBWR checkpoints/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'DBWR lru scans', VALUE)),

                  'FM999,999,999.9')

            "DBWR lru scans/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'DBWR undo block writes', VALUE)),

                  'FM999,999,999.9')

            "DBWR undo block writes/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'physical writes', VALUE)),

                  'FM999,999,999.9')

            "Physical Writes/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'physical writes direct', VALUE)),

                  'FM999,999,999.9')

            "Physical Writes Direct/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'branch node splits', VALUE)),

                  'FM999,999,999.9')

            "Branch Node Splits/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'leaf node splits', VALUE)),

                  'FM999,999,999.9')

            "Leaf Node Splits/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'leaf node 90-10 splits', VALUE)),

                  'FM999,999,999.9')

            "Leaf Node 90-10 Splits/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'commit cleanouts', VALUE)),

                  'FM999,999,999.9')

            "Commit Cleanouts/Sec",

         TO_CHAR (

            SUM (

               DECODE (STAT_NAME,

                       'cleanouts only - consistent read gets', VALUE)),

            'FM999,999,999.9')

            "Cleanouts Only-CRgets/Sec",

         TO_CHAR (

            SUM (

               DECODE (STAT_NAME,

                       'cleanouts and rollbacks - consistent read gets', VALUE)),

            'FM999,999,999.9')

            "Cleanouts&Rollbacks-CRgets/Sec",

         TO_CHAR (

            SUM (DECODE (STAT_NAME, 'index fast full scans (full)', VALUE)),

            'FM999,999,999.9')

            "Index FastFullScans(full)/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'table fetch by rowid', VALUE)),

                  'FM999,999,999.9')

            "Table Fetch By Rowid/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'table fetch continued row', VALUE)),

                  'FM999,999,999.9')

            "Table Fetch Continued Row/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'table scans (long tables)', VALUE)),

                  'FM999,999,999.9')

            "Table Scans (long tables)/Sec",

         TO_CHAR (

            SUM (DECODE (STAT_NAME, 'table scans (short tables)', VALUE)),

            'FM999,999,999.9')

            "Table Scans (short tables)/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'table scan blocks gotten', VALUE)),

                  'FM999,999,999.9')

            "Table Scan Blocks gotten/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'table scan rows gotten', VALUE)),

                  'FM999,999,999.9')

            "Table Scan Rows gotten/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'logons cumulative', VALUE)),

                  'FM999,999,999.9')

            "Logons Cumulative/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'opened cursors cumulative', VALUE)),

                  'FM999,999,999.9')

            "Opened Cursors Cumulative/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'parse count (total)', VALUE)),

                  'FM999,999,999.9')

            "Parse Count (total)/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'parse count (hard)', VALUE)),

                  'FM999,999,999.9')

            "Parse Count (hard)/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'parse count (failures)', VALUE)),

                  'FM999,999,999.9')

            "Parse Count (failures)/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'parse time cpu', VALUE)),

                  'FM999,999,999.9')

            "Parse Time CPU/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'parse time elapsed', VALUE)),

                  'FM999,999,999.9')

            "Parse Time Elapsed/Sec",

         TO_CHAR (

            SUM (DECODE (STAT_NAME, 'session cursor cache count', VALUE)),

            'FM999,999,999.9')

            "Session Cursor Cache Count/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'session cursor cache hits', VALUE)),

                  'FM999,999,999.9')

            "Session Cursor Cache Hits/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'redo entries', VALUE)),

                  'FM999,999,999.9')

            "Redo Entries/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'redo size', VALUE)),

                  'FM999,999,999.9')

            "Redo Size/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'redo write time', VALUE)),

                  'FM999,999,999.9')

            "Redo Write Time/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'sorts (disk)', VALUE)),

                  'FM999,999,999.9')

            "Sorts (disk)/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'sorts (memory)', VALUE)),

                  'FM999,999,999.9')

            "Sorts (memory)/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'sorts (rows)', VALUE)),

                  'FM999,999,999.9')

            "Sorts (rows)/Sec",

         TO_CHAR (

            SUM (

               DECODE (

                  STAT_NAME,

                  'transaction tables consistent reads - undo records applied', VALUE)),

            'FM999,999,999.9')

            "TX cr Undo Record applied/Sec",

         TO_CHAR (

            SUM (

               DECODE (STAT_NAME,

                       'transaction tables consistent read rollbacks', VALUE)),

            'FM999,999,999.9')

            "TX cr read rollbacks/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'undo change vector size', VALUE)),

                  'FM999,999,999.9')

            "Undo Change Vector Size/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'logons current', VALUE)),

                  'FM999,999,999.9')

            "Logons Current",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'opened cursors current', VALUE)),

                  'FM999,999,999.9')

            "Opened Cursors Current",

         TO_CHAR (

            SUM (

               DECODE (STAT_NAME, 'SQL*Net roundtrips to/from client', VALUE)),

            'FM999,999,999.9')

            "SQLNet RoundTrip Client/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'physical read total bytes', VALUE)),

                  'FM999,999,999.9')

            "Physical Read Total Bytes/Sec",

         TO_CHAR (

            SUM (

               DECODE (STAT_NAME, 'cell physical IO interconnect bytes', VALUE)),

            'FM999,999,999.9')

            "CellPhy.IOInterconnectByte/Sec",

         TO_CHAR (

            SUM (

               DECODE (STAT_NAME,

                       'cell physical IO bytes saved by storage index', VALUE)),

            'FM999,999,999.9')

            "CellPhy.IOBytesSavedbySInd/Sec",

         TO_CHAR (

            SUM (

               DECODE (

                  STAT_NAME,

                  'cell physical IO interconnect bytes returned by smart scan', VALUE)),

            'FM999,999,999.9')

            "CellPhy.IOByteReturnedbySS/Sec",

         TO_CHAR (

            SUM (DECODE (STAT_NAME, 'physical read total IO requests', VALUE)),

            'FM999,999,999.9')

            "Physical Read Total IO Req/Sec",

         TO_CHAR (

            SUM (DECODE (STAT_NAME, 'physical read requests optimized', VALUE)),

            'FM999,999,999.9')

            "Physical Read Req Opt./Sec",

         TO_CHAR (

            SUM (DECODE (STAT_NAME, 'cell flash cache read hits', VALUE)),

            'FM999,999,999.9')

            "Cell Flash Cache Read Hits/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'cell scans', VALUE)),

                  'FM999,999,999.9')

            "Cell Scans/Sec",

         TO_CHAR (SUM (DECODE (STAT_NAME, 'cell index scans', VALUE)),

                  'FM999,999,999.9')

            "Cell Index Scans/Sec"

    FROM (SELECT STAT_NAME,

                 DECODE (G1,

                         1, 'SUB AVG',

                         SUBSTR (SNAP_TIME, 1, INSTR (SNAP_TIME, '-') - 1))

                    SNAP_TIME,

                 SNAP_TIME SNAP_TIME_RANGE,

                 VALUE,

                 VALUE_DIFF

            FROM (  SELECT STAT_NAME,

                           START_TIME || '-' || END_TIME SNAP_TIME,

                           ROUND (AVG (NVL (VALUE, 0)), 1) VALUE,

                           ROUND (AVG (NVL (VALUE_DIFF, 0)), 1) VALUE_DIFF,

                           GROUPING (START_TIME || '-' || END_TIME) G1,

                           GROUPING (STAT_NAME) G2

                      FROM (SELECT STAT_NAME,

                                   TO_CHAR (SNAP_TIME_C1, 'MM.DD HH24:MI')

                                      START_TIME,

                                   TO_CHAR (SNAP_TIME_C2, 'MM.DD HH24:MI')

                                      END_TIME,

                                   DECODE (

                                      SNAP_TIME_C2,

                                      NULL, 0,

                                      ROUND (

                                         (CASE

                                             WHEN VALUE_2 < VALUE_1 THEN 0

                                             ELSE VALUE_2 - VALUE_1

                                          END)

                                         / (EXTRACT (

                                               DAY FROM SNAP_TIME_C2

                                                        - SNAP_TIME_C1)

                                            * 86400

                                            + EXTRACT (

                                                 HOUR FROM SNAP_TIME_C2

                                                           - SNAP_TIME_C1)

                                              * 3600

                                            + EXTRACT (

                                                 MINUTE FROM SNAP_TIME_C2

                                                             - SNAP_TIME_C1)

                                              * 60

                                            + EXTRACT (

                                                 SECOND FROM SNAP_TIME_C2

                                                             - SNAP_TIME_C1)),

                                         1))

                                      VALUE,

                                   (CASE

                                       WHEN VALUE_2 < VALUE_1 THEN 0

                                       ELSE VALUE_2 - VALUE_1

                                    END)

                                      VALUE_DIFF,

                                   ROW_NUMBER ()

                                   OVER (PARTITION BY INSTANCE_NUMBER, STAT_NAME

                                         ORDER BY SNAP_ID)

                                      RNUM,

                                   SNAP_ID,

                                   INSTANCE_NUMBER

                              FROM (  SELECT /*+ LEADING(DBI) USE_HASH(SNAP STAT) */

                                            SNAP.END_INTERVAL_TIME

                                                SNAP_TIME_C1,

                                             LEAD (

                                                SNAP.END_INTERVAL_TIME)

                                             OVER (

                                                PARTITION BY DBI.INSTANCE_NUMBER,

                                                             STAT_NAME

                                                ORDER BY SNAP.SNAP_ID)

                                                SNAP_TIME_C2,

                                             STAT.STAT_NAME,

                                             STAT.VALUE VALUE_1,

                                             LEAD (

                                                STAT.VALUE)

                                             OVER (

                                                PARTITION BY DBI.INSTANCE_NUMBER,

                                                             STAT_NAME

                                                ORDER BY SNAP.SNAP_ID)

                                                VALUE_2,

                                             SNAP.SNAP_ID,

                                             DBI.INSTANCE_NUMBER

                                        FROM (SELECT           /*+ NO_MERGE */

                                                    DI.DBID,

                                                     DI.INSTANCE_NUMBER,

                                                     DI.STARTUP_TIME

                                                FROM DBA_HIST_DATABASE_INSTANCE DI

                                               WHERE     DI.DBID = (select dbid from v$database) --변경 

                                                     AND DI.INSTANCE_NUMBER = (select  INSTANCE_NUMBER from v$instance)  --변경

                                                     AND ROWNUM <= 1) DBI,

                                             DBA_HIST_SNAPSHOT SNAP,

                                             DBA_HIST_SYSSTAT STAT

                                       WHERE DBI.DBID = SNAP.DBID

                                             AND DBI.INSTANCE_NUMBER =

                                                    SNAP.INSTANCE_NUMBER

                                             AND DBI.DBID = SNAP.DBID

                                             AND SNAP.SNAP_ID >= :3

                                             AND SNAP.SNAP_ID <= :4

                                             AND SNAP.DBID = STAT.DBID

                                             AND SNAP.INSTANCE_NUMBER =

                                                    STAT.INSTANCE_NUMBER

                                             AND SNAP.SNAP_ID = STAT.SNAP_ID

                                             AND STAT.STAT_NAME IN

                                                    ('session logical reads',

                                                     'physical reads',

                                                     'execute count',

                                                     'user calls',

                                                     'user commits',

                                                     'user rollbacks',

                                                     'CPU used by this session',

                                                     'DB time',

                                                     'application wait time',

                                                     'cluster wait time',

                                                     'concurrency wait time',

                                                     'user I/O wait time',

                                                     'CR blocks created',

                                                     'consistent changes',

                                                     'consistent gets',

                                                     'db block changes',

                                                     'data blocks consistent reads - undo records applied',

                                                     'db block gets',

                                                     'enqueue releases',

                                                     'enqueue waits',

                                                     'DBWR checkpoints',

                                                     'DBWR lru scans',

                                                     'DBWR undo block writes',

                                                     'free buffer inspected',

                                                     'free buffer requested',

                                                     'physical writes',

                                                     'physical writes direct',

                                                     'branch node splits',

                                                     'leaf node 90-10 splits',

                                                     'leaf node splits',

                                                     'cleanouts and rollbacks - consistent read gets',

                                                     'cleanouts only - consistent read gets',

                                                     'commit cleanouts',

                                                     'index fast full scans (full)',

                                                     'table fetch by rowid',

                                                     'table fetch continued row',

                                                     'table scan blocks gotten',

                                                     'table scan rows gotten',

                                                     'table scans (long tables)',

                                                     'table scans (short tables)',

                                                     'logons cumulative',

                                                     'opened cursors cumulative',

                                                     'parse count (total)',

                                                     'parse count (hard)',

                                                     'parse count (failures)',

                                                     'parse time cpu',

                                                     'parse time elapsed',

                                                     'session cursor cache count',

                                                     'session cursor cache hits',

                                                     'redo entries',

                                                     'redo size',

                                                     'redo sync time',

                                                     'redo write time',

                                                     'sorts (disk)',

                                                     'sorts (memory)',

                                                     'sorts (rows)',

                                                     'sql area evicted',

                                                     'sql area purged',

                                                     'undo change vector size',

                                                     'SQL*Net roundtrips to/from client',

                                                     'transaction tables consistent reads - undo records applied',

                                                     'transaction tables consistent read rollbacks',

                                                     'physical read total bytes',

                                                     'physical read total IO requests',

                                                     'physical read requests optimized',

                                                     'cell physical IO interconnect bytes',

                                                     'cell physical IO bytes saved by storage index',

                                                     'cell physical IO interconnect bytes returned by smart scan',

                                                     'cell flash cache read hits',

                                                     'cell scans',

                                                     'cell index scans')

                                    ORDER BY SNAP.SNAP_ID)

                             WHERE SNAP_TIME_C2 <> SNAP_TIME_C1)

                     WHERE START_TIME IS NOT NULL AND END_TIME IS NOT NULL

                  GROUP BY ROLLUP (STAT_NAME, START_TIME || '-' || END_TIME))

           WHERE NOT (G1 = 1 AND G2 = 1)

          UNION ALL

          SELECT STAT_NAME,

                 DECODE (G1,

                         1, 'SUB AVG',

                         SUBSTR (SNAP_TIME, 1, INSTR (SNAP_TIME, '-') - 1))

                    SNAP_TIME,

                 SNAP_TIME SNAP_TIME_RANGE,

                 VALUE,

                 NULL VALUE_DIFF

            FROM (  SELECT STAT_NAME,

                           START_TIME || '-' || END_TIME SNAP_TIME,

                           ROUND (

                              AVG (DECODE (SIGN (VALUE), -1, 0, NVL (VALUE, 0))),

                              1)

                              VALUE,

                           GROUPING (START_TIME || '-' || END_TIME) G1,

                           GROUPING (STAT_NAME) G2

                      FROM (SELECT STAT_NAME,

                                   TO_CHAR (SNAP_TIME_1, 'MM.DD HH24:MI')

                                      START_TIME,

                                   TO_CHAR (SNAP_TIME_2, 'MM.DD HH24:MI')

                                      END_TIME,

                                   DECODE (SNAP_TIME_2,

                                           NULL, 0,

                                           ROUND ( (VALUE_1 - VALUE_2), 1))

                                      VALUE,

                                   ROW_NUMBER ()

                                   OVER (PARTITION BY INSTANCE_NUMBER, STAT_NAME

                                         ORDER BY SNAP_ID)

                                      RNUM,

                                   SNAP_ID,

                                   INSTANCE_NUMBER

                              FROM (  SELECT SNAP.BEGIN_INTERVAL_TIME SNAP_TIME_1,

                                             STAT.STAT_NAME,

                                             STAT.VALUE VALUE_1,

                                             0 VALUE_2,

                                             SNAP.END_INTERVAL_TIME SNAP_TIME_2,

                                             SNAP.SNAP_ID,

                                             DBI.INSTANCE_NUMBER

                                        FROM (SELECT DI.DBID,

                                                     DI.INSTANCE_NUMBER,

                                                     DI.STARTUP_TIME

                                                FROM DBA_HIST_DATABASE_INSTANCE DI

                                               WHERE     DI.DBID = (select dbid from v$database) --변경

                                                     AND DI.INSTANCE_NUMBER = (select  INSTANCE_NUMBER from v$instance)  --변경

                                                     AND ROWNUM <= 1) DBI,

                                             DBA_HIST_SNAPSHOT SNAP,

                                             DBA_HIST_SYSSTAT STAT

                                       WHERE DBI.DBID = SNAP.DBID

                                             AND DBI.INSTANCE_NUMBER =

                                                    SNAP.INSTANCE_NUMBER

                                             AND SNAP.SNAP_ID >= :7

                                             AND SNAP.SNAP_ID <= :8

                                             AND SNAP.DBID = STAT.DBID

                                             AND SNAP.INSTANCE_NUMBER =

                                                    STAT.INSTANCE_NUMBER

                                             AND SNAP.SNAP_ID = STAT.SNAP_ID

                                             AND STAT.STAT_NAME IN

                                                    ('opened cursors current',

                                                     'logons current',

                                                     'session pga memory',

                                                     'session uga memory',

                                                     'session pga memory max',

                                                     'session uga memory max')

                                    ORDER BY SNAP.SNAP_ID))

                     WHERE RNUM > 1

                  GROUP BY ROLLUP (STAT_NAME, START_TIME || '-' || END_TIME))

           WHERE NOT (G1 = 1 AND G2 = 1)

          ORDER BY STAT_NAME, SNAP_TIME)

GROUP BY SNAP_TIME, SNAP_TIME_RANGE

ORDER BY SNAP_TIME








블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,