database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 37889 게시물 읽기
No. 37889
Index Tablespace 공간 확보 방안 좀 해결해 주세요
작성자
simon
작성일
2010-08-23 15:51
조회수
2,769

현재 Interface 하는 중 발생한 문제 입니다.

Interface를 수행하는 과정에 Data를 한 개 한 개를 비교하면 진행하면 너무 많은 시간이 소요되어

1. 무조건 옮기고자 하는 기간 동안의 모든 Data를 삭제하고 (Delete)

2. 기간 동안의 정보를 Insert into를 수행한다.

==> 이 때에 발생하는 문제가 1번 사항에서 Delete를 수행하면 단순히 Data는 삭제되나

   Index Table에는 삭제되지 않고 그대로 남는 현상이 발생함. 이에 따라 Index Tablespace가 한없이

크게 발생하는 문제가 발생함.

특히, Interface가 30분단위로 발생하다가 보니 Index가 기하급수적으로 증가합니다.

고수님들 해결 방안이 없습니까 ?

이 글에 대한 댓글이 총 4건 있습니다.

인덱스는 delete후에 commit을 해주어야 free block을 재사용합니다.

따라서

delete ~

commit;

insert ~

형태로 해주시면 되겠죠^^

그리고 잠시 첨언하면 delete ,insert  방법은 좋은 데이터 갱신 방법은 아닙니다.

파티션테이블 + 파티션  익스체인지 형태가 가능하다면 이형태로 가시는게 효율적이라 생각이 드네요.

 

백면서생님이 2010-08-24 11:04에 작성한 댓글입니다.
이 댓글은 2010-08-24 11:06에 마지막으로 수정되었습니다. Edit

답변 감사합니다.

그런데 Commit을 한다고 해서 Delete 시에 Data는 삭제가 되나, Index의 공간은

그대로 남아 있습니다. Index도 삭제된 Data에 맞추어 정리하고자 하는 것입니다.

다른 방법이 없는지요

simon님이 2010-08-24 11:16에 작성한 댓글입니다. Edit

위에 분께서도 설명했지만. 이해를 못하신듯 하네요.

자료를 삭제한다고 인덱스 전체 크기가 줄어드는것은 아닙니다.

테이블도 마찬가지구요.

빈공간 그대로 자리를 차지하고 있습니다.

다만 커밋 후 인서트하면 이 빈공간을 재사용하게 됩니다.

빈공간을 없애고 테이블이나 인덱스의 크기를 줄이려면 재생성하는 방법.

마농(manon94)님이 2010-08-24 13:19에 작성한 댓글입니다.

인덱스 구조를 이해해 보심도 좋을듯 합니다.

http://ukja.tistory.com/195

김대훈(willtuner)님이 2010-08-26 10:22에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
37892max 쿼리 [3]
mmm
2010-08-24
3003
37891오라클에서는 COMMIT이 여러번 호출 되도 되나요? [1]
용세중
2010-08-24
2570
37890sum을 했더니 숫자가 이상한데요 [2]
ㄴㄴ
2010-08-24
2326
37889Index Tablespace 공간 확보 방안 좀 해결해 주세요 [4]
simon
2010-08-23
2769
37888ORA-01467: 정렬 키가 너무 깁니다(해결해 보신분 있으신가요?) [1]
이상영
2010-08-23
5131
37887(힘든노가다홍보일주실분)010-5787-6000
김선종
2010-08-23
3037
37886Grouping, Group_id 질문입니다.. [1]
아폴론
2010-08-23
4200
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다