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 39171 게시물 읽기
No. 39171
partition table merge into 성능문제입니다.
작성자
이광복(o0514)
작성일
2011-12-15 15:19ⓒ
2011-12-16 10:42ⓜ
조회수
4,944

MERGE /*+ INDEX(A PK_FT) PARALLEL(B 3) */ INTO FT A USING TMP B

ON (A.거래일 = B.거래일)

WHEN MATCHED THEN

UPDATE SET

A.ID = B.ID

WHEN NOT MATCHED THEN

INSERT (

A.거래일,

A.ID)

VALUES (

B.거래일,

B.ID)

;

소스(TMP)  건수는 약 3백만건 됩니다.

타겟(FT) 테이블의 건수는 약 7억건 됩니다.

타겟 테이블은 24개의 파티션(201001 ~ 201112) 으로 월별로 되어 있습니다.

파티션 키는 첫번째 컬럼 거래일의 substring (1,6) 해서 'YYYYMM' 입니다.

소스 3백만건중 250만건은 201111,201112 파티션에 해당합니다.

3백만건을 가지고, 7억건에 merge into를 하려고 합니다.

첫번째 방법

소스를 3개로 나누어 각 테이블별로 적재한다

1 : 201111 이전

2. 201111

3. 201112

적재 후 각 테이블별로 타겟테이블의 파티션을 지정하여 merge into 를 한다.

두번째 방법

소스를 단순히 건수를 균등하게 3개로 나눈다

테이블 1,2,3을 만들어 적재한다.

타겟에 파티션 지정없이 merge into를 한다.

 

논리적으로 생각하면 첫번째 방법이 빠를것 같은데 두번째 방식이 빠릅니다.

이유가 뭘까요?

또 3백만건을 최대한 빨리 merge into 하는 방법은 뭐가 있을까요?

고수님들의 고견 부탁드립니다.

[Top]
No.
제목
작성자
작성일
조회
39174erwin 설치 에러
유닉스
2011-12-19
5089
39173테이블사이즈와 데이터사이즈
궁금이
2011-12-19
17624
39172SQL 문의드립니다. [2]
포대인
2011-12-16
4267
39171partition table merge into 성능문제입니다.
이광복
2011-12-15
4944
39170listener.log 파일에 service_update 찍히는 현상 [1]
박병준
2011-12-14
6608
39169여러 로우를 한 로우에 표현하는 방법좀 부타 드립니다. [1]
김종태
2011-12-14
3806
39167엔터프라이즈 매니저 11g에서 실행이 안되요 ㅠㅠ
박지현
2011-12-14
3396
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다