SELECT fl.tablespace_name,
df.name,
fs.phyrds,
fs.phywrts,
round((PHYRDS / (SELECT sum(phyrds)
FROM v$filestat)) *100, 1) "P_READ(%)",
round((PHYWRTS / DECODE((SELECT sum(phywrts)
FROM v$filestat), 0, 1, (SELECT sum(phywrts)
FROM v$filestat)))*100, 1) "P_WRITE(%)",
round((phyrds + phywrts) / (SELECT sum(phyrds) + sum(phywrts)
FROM v$filestat) * 100, 1) "TOTAL IO (%)" ,
round(fs.AVGIOTIM/1000, 3) "AVG_TIME(msec)"
FROM V$DATAFILE df,
V$FILESTAT fs,
dba_data_files fl
WHERE df.file# = fs.file#
AND df.file# = fl.file_id
ORDER BY phyrds+phywrts DESC;
결과는 아래와 같습니다.
각 항목에 대한 설명은 아래의 "TAC DB" 내용을 참고합니다.
TAC DB
다음은 TAC DB 쿼리 작성 예입니다.
결과는 아래와 같습니다.
각 항목에 대한 설명은 다음과 같습니다.
항목
설명
INST_ID
Tibero 인스턴스 정보 (TAC DB 질의 쿼리)
TABLESPACE_NAME
Tablespace의 이름
NAME
생성된 데이터 파일 이름
PHYRDS
디스크에서 Block을 읽은 횟수
PHYWRTS
디스크에 Block을 쓴 횟수
P_READ(%)
해당 데이터 파일의 Read 빈도
(전체 Block Read 중에 해당 데이터파일의 비중)
P_WRITE(%)
해당 데이터 파일의 Write 빈도
(전체 Block Write중에 해당 데이터 파일의 비 중)
TOTAL IO(%)
해당 데이터 파일의 Read와 Write 빈도
(전체 Block Read와 Write중에 해당 데 이터 파일의 비중)
AVG_TIME
평균 I/O 시간
(기본값의 단위가 usec 이므로 적절히 변환하여 사용,
위의 예에서는 msec으로 표기)
데이터 파일의 I/O 정도와 시간을 확인한다. Read(%), Write(%), Total IO(%)는 데이터베이스내의 모든 파일에 대한 Read, Write, Read+Write 가운데 해당 파일이 차지하는 비율을 의미합니다.
평균 I/O 시간이 긴 데이터 파일에 대해서는 해당 데이터 파일이 위치한 디스크의 성능을 고려해야 하며 많은 데이 터 파일이 같은 위치에 있어 발생하는 I/O 병목현상의 가능성도 확인해야 합니다. 또한 I/O가 많이 발생하는 데이터 파 일은 하나의 Device에 몰리지 않도록 분산합니다.
Online Redo Log Switch 횟수
시간별로 Online Redo Log Switch의 횟수를 확인합니다.
Single DB
다음은 Single DB 쿼리 작성 예입니다.
결과는 아래와 같습니다.
각 항목에 대한 설명은 아래의 "TAC DB" 내용을 참고합니다.
TAC DB
다음은 TAC DB 쿼리 작성 예입니다.
결과는 아래와 같습니다.
각 항목에 대한 설명은 다음과 같습니다.
항목
설명
INST_ID
Tibero 인스턴스 정보 (TAC DB 질의 쿼리)
Online Log_history
시간별 Log Switch 발생 횟수
Online Log에 대하여 매 시간별 발생한 Log Switch의 발생 횟수를 보여줍니다.
Online Redo Log의 시간별 Switch 횟수로 데이터베이스의 트랜잭션 양을 예측할 수 있고 현 시점에서 가장 트랜잭션이 많은 시간을 파악할 수 있습니다. 많은 트랜잭션이 발생하는 시간에는 대량의 Batch Job을 다른 시간에 수행하도록 하는것이 바람직합니다.