튜닝사례까지는 아니지만..
db segment 증가량은 어느 사이트나 관심의 대상이다.
만약 매월 segment 사용량 데이터를 수집하고 있다면 이 raw data 로
전월대비 리포트를 뽑을수 있다.
예를 들어
시점, owner, segment 를 매월 수집했다면..
2019년 10월 사용량과 9월 대비 증가량을 뽑고자 한다면..
select 수집일, owner, round(sum(bytes)) seg
from 수집한데이터테이블
where 수집일 in ('201909','201910')
group by 수집일, owner
수집일, owner 별 사용량 합이 구해진다.
owner 가 OWN1, OWN2 이 있다고 하자.
select sum(decode(rn,1,seg)) total
,sum(rn * seg) tot_dif
,sum(decode(rn,1,decode(owner,'OWN1',seg))) tot_own1
,sum(decode(owner,'OWN1',rn * seg) ) tot_own1_dif
,sum(decode(rn,1,decode(owner,'OWN2',seg))) tot_own2
,sum(decode(owner,'OWN2',rn * seg) ) tot_own2_dif
from (
select 수집일, owner, round(sum(bytes)) seg, decode(수집일,'201910',1,'201909',-1) rn
from 수집한데이터테이블
where 수집일 in ('201909','201910')
group by 수집일, owner
)
rn 이라는 가공의 컬럼을 만들어서 현재월이면 1, 지난 월이면 -1 이 나오게 해서
sum 실행시 전월이면 마이너스가 된다.
'생계 > 튜닝' 카테고리의 다른 글
rac 환경 통계수집 후 no_invalidate (0) | 2023.06.10 |
---|---|
오라클 AWR 사용하기 (0) | 2023.05.13 |
[SQL]열거된 OR 제거하기. IN 사용 (0) | 2020.11.13 |
동일패턴 추가되는 NOT IN 절 (0) | 2019.11.01 |
GROUP BY 로 가공되어 처리범위를 줄여주지 못하는 인라인뷰 (0) | 2019.11.01 |