블로그 이미지
redkite

카테고리

분류 전체보기 (291)
00.SI프로젝트 산출물 (0)
00.센터 운영 문서 (0)
01.DBMS ============.. (0)
01.오라클 (117)
01.MS-SQL (15)
01.MySQL (30)
01.PostgreSql (0)
01.DB튜닝 (28)
====================.. (0)
02.SERVER ==========.. (0)
02.서버-공통 (11)
02.서버-Linux (58)
02.서버-Unix (12)
02.서버-Windows (2)
====================.. (0)
03.APPLICATION =====.. (11)
====================.. (0)
04.ETC =============.. (0)
04.보안 (5)
====================.. (0)
05.개인자료 (1)
06.캠핑관련 (0)
07.OA관련 (1)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

SQL 튜닝을 위한 대상 선정을 하기 위하여 AWR을 이용하여

다음의 스크립트를 활용하여 추출할 수 있다.

추출조건(실행횟수는 제외)은 각 시스템의 규모나 성능에 맞도록 조정하여 사용하시길...

-------------------------------------------------------------------------------
1. 소요시간 2초 이상 OR

   읽은 블럭 10,000블럭 이상 SQL 추출(SQL_ID 중복없이 추출)

-------------------------------------------------------------------------------
SELECT 
       A.EXECUTIONS_DELTA,
       ROUND(NVL(A.ROWS_PROCESSED_DELTA,0) /

          DECODE(A.EXECUTIONS_DELTA,0,1,A.EXECUTIONS_DELTA),0) AS AVG_ROWS_PROCESSED,
       ROUND(NVL(A.ELAPSED_TIME_DELTA,0)   /

          DECODE(A.EXECUTIONS_DELTA,0,1,A.EXECUTIONS_DELTA)/1000000,2) AS AVG_ELAPSED,
       ROUND(NVL(A.BUFFER_GETS_DELTA,0)    /

          DECODE(A.EXECUTIONS_DELTA,0,1,A.EXECUTIONS_DELTA),0)        AS AVG_BUFFER_GETS,
       A.MODULE,
       A.ACTION,
       A.SQL_ID,
       A.PARSING_SCHEMA_NAME         AS USERNAME,
       B.SQL_TEXT                    AS SQL_TEXT,
       TO_CHAR(C.BEGIN_INTERVAL_TIME,'YYYY.MM.DD HH24:MI:SS')  AS SQL_BEGIN_SNAP_TIME,
       TO_CHAR(C.END_INTERVAL_TIME,'YYYY.MM.DD HH24:MI:SS')    AS SQL_END_SNAP_TIME,
       A.INSTANCE_NUMBER             AS INST_NO,
       A.SNAP_ID,
       A.PLAN_HASH_VALUE,
       A.BUFFER_GETS_DELTA,
       A.VERSION_COUNT,
       A.OPTIMIZER_MODE,
       A.ELAPSED_TIME_DELTA,
       A.ROWS_PROCESSED_DELTA
  FROM DBA_HIST_SQLSTAT  A,
       DBA_HIST_SQLTEXT  B,
       DBA_HIST_SNAPSHOT C
 WHERE A.SQL_ID          = B.SQL_ID(+)
   AND A.DBID            = B.DBID(+)
   AND A.SNAP_ID         = C.SNAP_ID
   AND A.DBID            = C.DBID
   AND A.INSTANCE_NUMBER = C.INSTANCE_NUMBER
   AND C.BEGIN_INTERVAL_TIME BETWEEN TO_DATE('20100405090000','YYYYMMDDHH24MISS')

                                 AND TO_DATE('20100406235959','YYYYMMDDHH24MISS') 
   AND (A.SNAP_ID,A.BUFFER_GETS_DELTA,A.EXECUTIONS_DELTA,A.ELAPSED_TIME_DELTA)
        = (SELECT MAX(A.SNAP_ID),

                  MAX(BUFFER_GETS_DELTA),

                  MAX(EXECUTIONS_DELTA),

                  MAX(ELAPSED_TIME_DELTA)
             FROM DBA_HIST_SQLSTAT

            WHERE A.DBID            = B.DBID

              AND A.INSTANCE_NUMBER = INSTANCE_NUMBER

              AND A.SQL_ID = SQL_ID)
   AND (A.ELAPSED_TIME_DELTA   >= 2000000 *

          DECODE(A.EXECUTIONS_DELTA, NULL, 1, 0, 1, A.EXECUTIONS_DELTA) OR
        A.BUFFER_GETS_DELTA    >=   10000 *

          DECODE(A.EXECUTIONS_DELTA, NULL, 1, 0, 1, A.EXECUTIONS_DELTA))
   AND A.PARSING_SCHEMA_NAME  = '사용자';

 

-------------------------------------------------------------------------------
2. BIND 변수 값 추출
-------------------------------------------------------------------------------

SELECT /*+ USE_NL(A B C) */
       B.SNAP_ID,
       B.DBID,
       B.INSTANCE_NUMBER,
       B.SQL_ID,
       B.POSITION,
       B.NAME,
       B.VALUE_STRING,
       B.DATATYPE_STRING,
       B.LAST_CAPTURED,
       A.MODULE,
       C.BEGIN_INTERVAL_TIME,
       C.END_INTERVAL_TIME
  FROM DBA_HIST_SQLSTAT  A,
       DBA_HIST_SQLBIND  B,
       DBA_HIST_SNAPSHOT C
 WHERE A.DBID               = B.DBID
   AND A.SNAP_ID            = B.SNAP_ID
   AND A.INSTANCE_NUMBER    = B.INSTANCE_NUMBER
   AND A.SQL_ID             = B.SQL_ID
   AND B.DBID               = C.DBID
   AND B.SNAP_ID            = C.SNAP_ID
   AND B.INSTANCE_NUMBER    = C.INSTANCE_NUMBER
   AND C.BEGIN_INTERVAL_TIME BETWEEN TO_DATE('20100405090000','YYYYMMDDHH24MISS') and TO_DATE('20100406235959','YYYYMMDDHH24MISS') 
   AND (A.ELAPSED_TIME_DELTA   >= 2000000 * DECODE(A.EXECUTIONS_DELTA, NULL, 1, 0, 1, A.EXECUTIONS_DELTA) OR
        A.BUFFER_GETS_DELTA    >=   10000 * DECODE(A.EXECUTIONS_DELTA, NULL, 1, 0, 1, A.EXECUTIONS_DELTA))
   AND A.PARSING_SCHEMA_NAME  LIKE '%WAS'
ORDER BY B.SNAP_ID, B.DBID, B.INSTANCE_NUMBER, B.SQL_ID, TO_NUMBER(POSITION);

 

Posted by redkite
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함