2010-03-30 7 views
10

병합은 원본 테이블과의 조인 결과를 기반으로 대상 테이블에서 삽입, 업데이트 또는 삭제 작업을 수행 할 수 있습니다. 예를 들어, 다른 테이블에있는 차이점을 기반으로 한 테이블의 행을 삽입, 업데이트 또는 삭제하여 두 테이블을 동기화 할 수 있습니다.SQL Server 2008의 "Merge"절의 성능은 무엇입니까?

"병합"을 사용하여 기존 논리와 비교하여 존재를 확인하고 업데이트 또는 삽입을 결정하는 성능에 익숙한 사람이 있습니까?

감사합니다.

답변

8

MERGE는 DML 작업이 적기 때문에 일반적으로 더 빠르며 문서에서 권장되는 방법이기도합니다. "전통적인"방법을 사용하면 테이블을 두 번 처리합니다. 한 번은 존재를 확인하고 한 번은 DML을 실행합니다. MERGE를 사용하면 모든 것이 한 번의 작업으로 캡슐화됩니다. 따라서 한 세트의 잠금 및 한 세트의 로깅 등이 있습니다.

그러나 실제로 쿼리가 수행하는 작업에 주관적입니다. MSDN의 Optimizing MERGE Statement Performance을 살펴 봐야합니다.

1

Technet에는 Optimizing MERGE Statement Performance에 대한 정보가 있습니다. 기본적으로 데이터를 한 번만 통과하면되므로 개별 검사를 수행하는 것보다 성능이 더 좋습니다. 그러나 인덱스 등은 물론 여전히 중요합니다.

0

최근에는 큰 데이터웨어 하우스 프로젝트에서이 Merge 문을 사용했으며 구현이 쉽고 성능도 뛰어났습니다. 병합 성명서는 개발에 매우 ​​편리하다고 생각합니다.

감사를 논의하기 위해 기대 prav