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 41494 게시물 읽기
No. 41494
9억건 업테이트와 인서트
작성자
엑소
작성일
2017-12-13 00:40
조회수
6,182

고객정보 9건을 가진 TT 테이블은

a varchar2(10) -- 우편번호

b varchar2(100) -- 주소

c CLOB -- 기타정보

d varchar2(8) -- 등록일자

칼럼을 가지고 있습니다.

파티션은 되어있지 않습니다.

우편번호 체계가 변경되어 e varchar2(10) 칼럼을 추가하여 우편번호를 백업먼저하고 a 를 변경할 예정입니다.

BULK COLLECT INTO... FORALL 를 이용하여 5000건씩 TT에서 rowid를 가져와

update TT set e = a where rowid = v_rowid(i);

로 하니 12시간 걸렸습니다.

몇 개의 테이블이 더 있어서 더 이상 update는 안되겠다 싶어서

동일 테이블(ZZ)을 만들어서 백업 후 RENAME을 사용할까해서

insert /*+ APPEND */ into ZZ(a,b,c,d,e) select a,b,c,d,a from TT where d = '일자';

위 쿼리를 일자별로 나누어 실행했더니 2시간 정도 예상했는데 12시간 걸렸습니다.

질문

1. CLOB이 있는 insert ....select 는 원래 오래걸리나요?

2. CLOB이 있는 insert ....select 는 어떻게 쿼리를 만들어 사용해야하나요?

3. BULK COLLECT INTO... FORAL update 하는 것보다 더 좋은 방법은 어떤게 있을까요?

(담당자에게 파티션을 이야기했으나 안하겠다고하네요)

[Top]
No.
제목
작성자
작성일
조회
41497solaris 11 proc 사용해보신분?
신우철
2017-12-16
6105
41496아;; 단순쿼리인데 도저히 원인을 모르겠네요;; [2]
정군
2017-12-14
6783
41495시작과 끝정보 시간계산 [7]
오라클초보
2017-12-14
6457
414949억건 업테이트와 인서트
엑소
2017-12-13
6182
41493오라클 복구 여부 확인좀 부탁드립니다. [1]
복구확인
2017-12-12
5899
41492rownum 구간 null row까지 전부 표현 가능한가요? [2]
김기훈
2017-12-11
6104
41490누적합계 구하는 쿼리 질문 드립니다. [1]
하하하하
2017-12-04
6801
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다