2016년 12월 12일 월요일

[TALEND] "Insert or Update" 와 "Update or Insert" 차이

<구동원리>

Insert or Update :

  1. 대상 Row를 DB에 조회
    SELECT COUNT() FROM 테이블 WHERE KEY컬럼 = ?
  2. 조회 건수가 0이면 INSERT, 아니면 UPDATE 실시
    DB call 횟수 : ROW건수 * 2

Update or Insert :

  1. 대상 건을 UPDATE 수행
  2. 결과 건수가 0이면, INSERT 실시
    DB Call 횟수 : UPDATE 건수 + (INSERT 건수 2)
          (SELECT 건수 + INSERT/UPDATE 건수)

<차이점>

  • Insert or Update는 모든 Row를 INSERT/UPDATE 대상인지 확인하기 위해 SELECT로 조회하기 때문에 더 많은 DB Call 이 발생 함
    (모니터링 중인 DBA가 있다면, 호출 가능성 68.2893%..)

<결론>

  • 두 옵션에 대해 결과는 동일함
  • INSERT 건수가 UPDATE 건수보다 더 많은 경우 : INSERT or UPDATE 추천
  • UPDATE 건수가 INSERT 건수보다 더 많은 경우 : UPDATE or INSERT 추천

댓글 없음:

댓글 쓰기

[TALEND] TALEND의 쿼리 질의기 사용 방법

Talend 기본 SQL Builder 사용하기 본 내용은 간단한 TIP이지만, 많은 사람들이 모르는 것 같아 포스팅합니다. TOS에서 흔히 INPUT 컴퍼넌트에서 사용한 쿼리를 별로의 쿼리 툴에서 조회해야하는 경우가 발생합니다. 이럴때 TOS...