Oracle Index Size 관련해서 문의드립니다. 1 3 6,643

by 훈훈후니 [Oracle 기초] index size oracle [2016.02.21 20:04:50]


안녕하세요~

 

업무를 하는 중에 잘 모르는 부분이 있어 문의드립니다.

다름이 아니라 Index Size 에 관련된 건데요.

 

Table A 가 있습니다. Column 개수는 17개이고요.

그 중에서 3개의 Index 를 잡았습니다.

1. NUMBER(38) Column 1개로 구성된 Index

2. VARCHAR2(20 BYTE) Column 1개로 구성된 Index

3. VARCHAR2(20 BYTE) + VARCHAR2(20 BYTE) + VARCHAR2(20 BYTE) Column 3개로 구성된 Index

 

이렇게 잡고 운영하고 있는데..

Table 전체 크기보다 Index 크기가 더 큰거 같습니다.

Table 의 Size 는 57,521,012,736 이고요.

Index 각각의 Size 는 다 더하면 71,589,560,320 입니다.

(1. 14,467,596,288

2. 17.261.002.752

3. 39.860,961.280)

Index 가 잡혀있는게 별로 많지도 않은데 왜 이렇게 Size 가 큰 것일까요?

 

혹시 원인을 아시면 답변 부탁드리겠습니다.~

 

※ Table 구조는 Partition 으로 DATE Column 의 1일 기준으로 Interval Partition 구성되어 있고 Index 는 모두 Local 로 잡혀있습니다.

 

감사합니다~~

 

ps1 ) Table Size 와 Index Size 는 모두 아래와 같은 Query 로 구하였습니다.

select segment_name, sum(bytes) from dba_segments;

by 타락천사 [2016.02.21 21:23:12]

index reorg 가 필요해보니에요

아래 글 참고 하세요

http://tocsg.tistory.com/33


by 훈훈후니 [2016.02.22 22:34:27]

답변 감사드립니다.

 

그런데 궁금한게.. 해당 Table 이 Delete/Update 가 전혀 일어나지 않는 테이블인데도 저런 현상이 나오는 건가요? 주신 Link 를 읽어봤는데 잘 모르겠네요 ㅠ


by drakula [2016.02.23 10:55:31]

DELETE/UPDATE가 발생하지 않는 다면, 거의 그럴 일이 없긴 한데. 

통계 정보를 수집하는 테이블이라고 하면, 

SELECT * FROM DBA_TAB_MODIFICATION 

WHERE TABLE_NAME = 테이블 이름;

으로 다시 한번 INSERT/UPDATE/DELETE로 수집되는 정보를 다시 한번 확인해 보세요~.

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