2014. 9. 2. 09:11

[Oracle] IO를 많이 발생시키는 쿼리 찾기

SELECT  S.FIRST_LOAD_TIME, TO_CHAR(S.BUFFER_GETS,'999,999,999,990') BUFFER_GETS,

              S.DISK_READS, S.ROWS_PROCESSED, S.EXECUTIONS,
              SUBSTR(U.NAME,1,1) USERNAME, S.MODULE, S.SQL_TEXT
   FROM  V$SQLAREA S, SYS.USER$ U
 WHERE  S.PARSING_USER_ID = U.USER#
     AND  U.NAME <> 'SYS'
     AND  S.DISK_READS > 10000
     AND  S.FIRST_LOAD_TIME >= TO_CHAR(SYSDATE,'yyyy-mm-dd')||'/00:00:00'
 ORDER BY  S.FIRST_LOAD_TIME DESC;

 

2014. 8. 5. 14:06

배치(bat) 파일 만들기

1. 파일 경로 문제

배치 파일에서 실행시킬 파일의 주소에 공백이 들어갈 경우, 공백을 정상적으로 인식하지 못한다.
그렇기 때문에 실행시킬 경로를 따옴표(")로 묶어 주면 된다.
([윈도우] 공백이 들어간 폴더명/파일명의 파일 실행하기 - Windows 에서 참고)

2. 동시 실행 문제
단순히 위와 같이 파일 경로만 정해주면,
파일이 실행된 후에 그 파일이 종료되고 커맨드가 실행창으로 넘어올 때까지 대기하게 된다.
동시 실행을 위해서는 배치 명령어 start 를 사용하면 되겠다.
start 명령어의 /d 옵션은 파일의 시작 위치를 나타내며, /b 는 새로 창을 띄우지 않겠다는 옵션이다.
(cmd 에서 start /? 으로 확인해보자)

3. 배치 파일의 실행
다른 배치 파일은 call 명령어를 이용해 실행시켜야 한다.


최종적인 모습은 아래와 같다.

start /d "C:\Program Files\Mozilla Firefox\" /b firefox.exe
start /d "C:\Program Files\Internet Explorer\" /b iexplore.exe
call "C:\QuickStart\setNetworkDrive.bat"

 

 

2014. 4. 28. 21:37

[Oracle] LEADING HINT

1. Before SQL & Plan

 

:

  UNION ALL
  SELECT  A.OWNERID,
                A.CUSTID OWNERCUSTID,

:

 

Call     Count CPU Time Elapsed Time       Disk      Query    Current       Rows
------- ------ -------- ------------ ---------- ---------- ---------- ----------
Parse        1    0.320        0.318          0          9          0          0
Execute      1    0.000        0.000          0          0          0          0
Fetch        2   38.670      854.077     357665    2669098          0          2
------- ------ -------- ------------ ---------- ---------- ---------- ----------
Total        4   38.990      854.396     357665    2669107          0          2

 

 

1.1 문제점 및 해결책


  - UNION ALL의 두번째 SQL 집합에서 TPURCHASEORDERHI 테이블 ACCESS시 데이터 필터링이 제대로 이루어 지지 않아 조인시 성능저하 현상 발생
  - TTASKTRANS 테이블이 leading 될 수 있도록 힌트 적용하여 성능개선(854s -> 1s)

 

 

2. After SQL & Plan

 

:

  UNION ALL
  SELECT  /*+ LEADING(TT) */ A.OWNERID,
                A.CUSTID OWNERCUSTID,

:

     FROM  TTASKTRANS TT,

:

 

Call     Count CPU Time Elapsed Time       Disk      Query    Current       Rows
------- ------ -------- ------------ ---------- ---------- ---------- ----------
Parse        1    0.380        0.375          0          6          0          0
Execute      1    0.000        0.000          0          0          0          0
Fetch        2    0.510        0.511          0     114195          0          2
------- ------ -------- ------------ ---------- ---------- ---------- ----------
Total        4    0.890        0.887          0     114201          0          2

 

 

'DB Tuning' 카테고리의 다른 글

[Oracle] HINT 정리  (0) 2014.04.28
[Oracle] SUBQUERY -> INLINE VIEW  (0) 2014.04.28
[Oracle] INTERSECT, MINUS -> JOIN, NOT EXISTS  (0) 2014.04.28