MERGE 문
8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | 기타 | PL / SQL | SQL | RAC | WebLogic | Linux
홈 “기사”9i “여기
MERGE
문은 조건부 삽입 또는 업데이트를 위해 Oracle 9i에 도입되었습니다. “upsert”라고도하는 프로세스입니다. MERGE
문은 테이블 스캔을 줄이고 필요한 경우 병렬로 작업을 수행 할 수 있습니다.
- 구문
- 성능
관련 기사
- MERGE 문
- MERGE 문 향상 Oracle Database 10g
구문
HR_RECORDS
테이블의 데이터가
테이블.
소스는 쿼리 일 수도 있습니다.
성능
MERGE
문은 아래 예와 같이 단일 행이 아닌 데이터 집합을 병합하는 데 최적화되어 있습니다.
다음 테스트 테이블을 만듭니다. 소스 테이블에는
보기, 대상 테이블에는 행의 약 절반이 포함됩니다.
다음 코드는 네 가지 병합 작업의 성능을 비교합니다. 첫 번째는 직선 MERGE
문을 사용합니다. 두 번째도 MERGE
문을 사용하지만 행 단위로 사용합니다. 세 번째는 업데이트를 수행하고 업데이트가 0 개 행에 닿으면 조건부로 행을 삽입합니다. 네 번째는 행을 삽입 한 다음 색인 예외에서 중복 값으로 삽입에 실패하면 업데이트를 수행합니다.
출력은 직선 MERGE
문이 순서임을 보여줍니다. 가장 가까운 라이벌보다 훨씬 빠릅니다. 업데이트 / 삽입은 삽입 / 업데이트 속도의 거의 두 배를 수행하고 균등하게 행 단위로 MERGE
를 수행합니다.
업데이트 / 삽입 만 비교하면됩니다. 삽입 / 업데이트 방법을 분리하여 비교하면 테이블의 데이터에 따라 비교가 달라진다는 점을 기억해야합니다. 대부분의 데이터가 아직 존재하지 않는 경우 삽입 / 업데이트 방식이 더 좋을 수 있습니다. 대부분의 데이터가 이미 존재하는 경우 업데이트 / 삽입 방식이 더 나을 것입니다. 확실하지 않은 경우 더 명확하게 merge를 사용하십시오.
직선적 인 MERGE
문이 더 빠릅니다. DML 문이므로 서버가 추가로드를 처리 할 수있는 경우 성능을 더욱 향상시키기 위해 쉽게 병렬로 실행됩니다.
자세한 내용은 다음을 참조하십시오.
- MERGE 문
- Oracle Database 10g의 MERGE 문 향상
- MERGE
도움이 되길 바랍니다. Tim에게 감사합니다 …
맨 위로 이동