티스토리 뷰
1. commit;
alter session enable parallel dml;
alter session set sort_area_size = 1000000;
2. create table temp_table
storage(initial 50m) -- 충분한 extent 할당으로 동적 exent 할당 예방
tablespace another_disk_ts -- 서로 다른 디스크에 저장하여 I/O 분산
nologging -- log양을 최소화시킴
as
select * from the_table
where 1=2; -- table 정의만 생성
3. insert /*+ parallel(temp_table, 4) */ -- 병렬 direct path loading
into temp_table
nologging
select * from the_table
where 삭제되지 않는 row만;
4. truncate table the_table reuse storage; -- 저장공간은 그대로 두고 row만 삭제
5. insert /*+ parallel(the_table, 4) */
into the_table
nologging
select * from temp_table;
위 방법은 3가지 원리를 이용한 것입니다.
1. delete보다 insert가 훨씬 적은양의 rollback 및 redolog 양을 발생시킴.
2. delete보다 truncate가 훨씬 빠름.
3. parallel direct path loading 및 nologging을 이용한 속도향상
delete되는 양이 많다면 위 방법이 효과가 있을 것입니다.
parallel operation은 CPU 가 많고 메모리도 충분할 때 효과가 있습니다.
[출처] 대랑 Delete 작업시..|작성자 난나
'Database' 카테고리의 다른 글
[ORACLE] ORA-28000: the account is locked 오류시 (2) | 2009.06.27 |
---|---|
[ORACLE] /*+ INDEX */ 를 통한 셀렉트 (0) | 2009.06.13 |
[ORACLE] Direct loading(오라클퍼포먼스튜닝) (0) | 2009.06.13 |
[ORACLE] NVL함수 & DECODE함수 (1) | 2009.05.13 |
[MSSQL] UPDATE~SELECT 문의 사용 (0) | 2009.05.13 |
- Total
- Today
- Yesterday
- Linux
- MySQL
- delete
- apache
- 백업
- Windows
- select
- 윈도우
- 서버
- Oracle
- server
- mssql
- 설정
- Shell
- DB
- 테이블
- Toad
- table
- 자동차
- sql
- 리눅스
- tomcat
- 파일
- java
- 오라클
- eclipse
- 데이터
- user
- DATABASE
- IP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |