테이블 보관 주기에 따른 테이블과 인덱스 사이즈 계산 쿼리 0 3 1,797

by idoris [SQL Query] [2020.01.15 16:31:52]


테이블 보관 주기에 따른 각 테이블과 인덱스 사이즈 계산을 해야 합니다. ㅠ
예를 들면 TXN테이블이 현재 10년치 데이터를 갖고 있는데,
보관주기를 향후 2년치만 놔두고 남은 8년치를 삭제 했을 때,
작업 이 후, 예상 되는 사이즈 기대 효과를 측정 하기 위함입니다.

TXN_DATE 필드로 날짜 계산이 가능하다고 가정했을 때,
해당 필드로 전체 건 중, 최근 2년치만 쿼리해서
그 기준의 테이블과 인덱스 각각의 사이즈를 구하는 쿼리를 어떻게 만들어야 할까요?  ㅠ

정확한 수치는 아니더라도 추정치면 될 것 같습니다.

 

by 우리집아찌 [2020.01.16 08:00:48]

사이즈 구하는 쿼리는 잘모르겠는데요

대이터를 삭제 하셔도 저장공간 변함이 없으실 겁니다

delete 하셔도 저장공간을 반환하지 않습니다 

추가로 shrink 작업이나 reorg 작업을 해야한다고 알고 있습니다  

참고로 2년치만 따로 만든후 rename 하시는걸 추천드립니다 


by jkson [2020.01.16 09:06:04]

대략적인 수치라면 총 테이블, 인덱스 크기를 전체 ROW로 나눠서 ROW별 평균 크기를 구한 뒤에 측정하고자하는 데이터의 ROW를 곱하면 대략적인 크기가 나올 것 같습니다.

SELECT BYTES -- 총크기
FROM DBA_SEGMENTS
WHERE SEGMENT_NAME = ''--TABLE OR INDEX NAME
AND SEGMENT_TYPE IN ('INDEX','TABLE')


by 우리집아찌 [2020.01.16 13:26:55]

아 파티셔닝 테이블 이용하시면 상당히 편해지실수 있습니다

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입