OracleDB

[오라클 Admin] Oracle 시간별 상태 분석 (DBA_HIST_SQLSTAT) 본문

Oracle/Oracle Admin

[오라클 Admin] Oracle 시간별 상태 분석 (DBA_HIST_SQLSTAT)

마포김선생 2023. 12. 12. 15:03

오라클 DB 상태 정보 분석

 

작업 환경:
OS: Oracle Linux 8.9
DB: Oracle 19c

 

Oracle 시간별 DB 상태 분석 DBA_HIST_SQLSTAT

- DB 사용량이 언제 증가되었는지 확인할 때 매우 유용하게 사용할 수 있다.

- DB 사용량이 왜 증가되었는지 트랜젝션 증가 원인을 꼭 분석해야 한다.

- 문제점 분석(Why)를 찾으면 해결(Solution)이 가능하다.

 

- 분석 컬럼 상세

  CPU_TIME_DELTA (파싱/실행/패치에 사용하는 CPU 시간(마이크로 초)의 델타 값)

  EXECUTIONS_DELTA (SQL 실행 수 델타 값)
  BUFFER_GETS_DELTA (Child cursor에서 가져오는 Buffer 델타 값)

  PHYSICAL_READ_BYTES_DELTA (SQL 기준 디스크에 읽은 Bytes 델타 값)

  PHYSICAL_WRITE_BYTES_DELTA (SQL 기준 디스크에 기록된 Bytes 델타 값) 

 

 

Oracle 시간별 DB 상태 분석 SQL

- 최근 7일 분석

- 분석 결과 23년 12월 11일(월) 21:00에 DISK I/O가 겁나게 증가되었다.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
SELECT
    TO_CHAR(BEGIN_INTERVAL_TIME,'YYYY/MM/DD(DY) HH24') AS "SNAP_TIME",
    SUM(A.CPU_TIME_DELTA)             AS "CPU_TIME",
    SUM(A.EXECUTIONS_DELTA)           AS "EXECUTIONS",
    SUM(A.BUFFER_GETS_DELTA)          AS "BUFFER_GETS",
    SUM(A.PHYSICAL_READ_BYTES_DELTA)  AS "PHYSICAL_READ",
    SUM(A.PHYSICAL_WRITE_BYTES_DELTA) AS "PHYSICAL_WRITE"
FROM
    DBA_HIST_SQLSTAT  A,
    DBA_HIST_SNAPSHOT B
WHERE A.SNAP_ID = B.SNAP_ID
AND BEGIN_INTERVAL_TIME >= TRUNC(SYSDATE) -7
GROUP BY TO_CHAR(BEGIN_INTERVAL_TIME,'YYYY/MM/DD(DY) HH24')
ORDER BY 1;
 
 
<SQL 실행 결과>
 
SNAP_TIME             CPU_TIME EXECUTIONS BUFFER_GETS PHYSICAL_READ PHYSICAL_WRITE
------------------- ---------- ---------- ----------- ------------- --------------
2023/12/11(월) 13      9867645     122724      613231      10346496              0
2023/12/11(월) 15      1333052      12562       75521       2203648              0
2023/12/11(월) 16       660444       9750       55370        884736              0
2023/12/11(월) 17      1139733      15211       83866        745472              0
2023/12/11(월) 18      1097437      13317       81700        458752              0
2023/12/11(월) 19      5512809      35874      212916       7036928              0
2023/12/11(월) 20      1179986      11447       82957        458752              0
2023/12/11(월) 21     27695236     147930     2094172     321560576        1335861
2023/12/11(월) 22      4427664     140428      569313       1081344              0
2023/12/11(월) 23      1166446      10793       78931        933888              0
2023/12/12(화) 00       987345       9724       67340        557056              0
2023/12/12(화) 01       986697      11695       65309        630784              0
2023/12/12(화) 02      8337463      39237      582410       4153344              0
2023/12/12(화) 03      1082110      10546       75710        638976              0
2023/12/12(화) 04       932502       8268       61590        557056              0
2023/12/12(화) 05       870668       9563       63792        622592              0
2023/12/12(화) 06       984679      11342       74250             0              0
2023/12/12(화) 07       990946       9666       66932        557056              0
2023/12/12(화) 08      1098688      10481       72038        638976              0
2023/12/12(화) 09     15545142      15378      327863    1115119616              0
2023/12/12(화) 10     19966952      20745      433344    1498980352              0
2023/12/12(화) 11     20284896      21048      411555    1496924160              0
2023/12/12(화) 12     19179452      20351      406680    1496924160              0
2023/12/12(화) 13     19110593      21202      394851    1497923584              0