최근에 MSSQL 2008 R2로 업그레이드하고 각 테이블에 수백만 개의 행이있는 경우 "새"병합 기능이 Truncating 및 Inserting보다 효율적이고 빠른지 궁금합니다. 누구나 성능에 대한 데이터를 제공 할 수 있다면 좋겠지 만 설명이 도움이 될 것입니다.MERGE 대 TRUNCATE 및 INSERT
답변
잘 모르겠습니다. TRUNCATE
과 INSERT
을 정확하게 받았습니다. 그렇지 않다면, 나를 고쳐주십시오.
MERGE
은 기존 행에 UPDATE
을 수행하거나 기존 행이없는 경우 INSERT
을 수행하는 메커니즘을 의미합니다.
모든 것이 INSERT이므로 MERGE 사용을 제거하는 TRUNCATE
및 INSERT
을 제안합니다. 나는 결코 그것을 시도하지 않았기 때문에 MERGE
이 더 빠를 지 여부를 알지 못하지만, UPDATE
또는 INSERT
중 어느 것을 사용할지 결정하는 부분이 약간의 오버 헤드를 부과한다고 가정 할 것이다. .
TRUNCATE 및 INSERT 대신 MERGE를 사용할지, 둘 다 사용하지 않을지 궁금합니다. 혼란을 드려 죄송합니다. –
안녕 케빈. 아마도 내가 잘못 말한 것 같습니다. tr3과 마찬가지로 한 테이블에서 다른 테이블로 데이터를 복사하려고한다고 가정했습니다. 이 경우,'TRUNCATE'와'INSERT'을 고수 할 것입니다. 왜냐하면'MERGE'의 일부분이 UPDATE를 사용하여 오버 헤드를 추가 할 것인지 아닌지를 확인하기 때문입니다. 단일 테이블을 복제하는 간단한 방법을 찾고 있다면이 SO 질문을보십시오. 테이블의 일일 스냅 샷을 얻는 방법 - http://stackoverflow.com/questions/8813808/how-to-take-daily-snap-of-a-table – SchmitzIT
데이터 변경 (행의 체크섬 유지)이 필요했기 때문에 MERGE
을 사용했지만 특별한 이유가 없을 때마다 해당 데이터를 "복제"해야한다고 생각하기 때문에 MERGE
을 사용합니다. 모든 MERGE
이 일종의 수표를 발행 한 후에 (기본 키에 대한 점검이 있으며 추가 조건은 모두 WHEN
입니다); TRUNCATE
을 사용하고 대량 INSERT
당신이 방법에 의해 플레이
의 조건이 100 % 사실로이 적용되지 않습니다 모든이 없어야으로 , 내가 증거로 가져올 수있는 성능 검사를하지 않는다; 두 작업을 모두 시도하고 어느 작업이 더 많은 시간이 걸릴지 제안하십시오.)
- 1. SQL INSERT, Force Truncate Field
- 2. DELETE, INSERT 대 UPDATE || INSERT
- 3. bzr pull 대 bzr merge
- 4. PostgreSQL에서 DROP 및 CREATE 대 DELETE 및 INSERT
- 5. "REPLACE INTO"대 INSERT [IF]
- 6. MERGE 쿼리 및 삭제 기록은
- 7. Oracle Merge 대 선택 후 삽입 또는 업데이트
- 8. LLBLGen에서 Insert 또는 Update/Merge/Upsert를 수행하는 방법이 있습니까
- 9. mysql truncate archive table
- 10. jquery truncate plugin
- 11. PHP SQL Truncate
- 12. merge part in merge sort
- 13. Mysql "safe"merge
- 14. Sql2008 MERGE 구문은 여기에서해야합니까?
- 15. Jquery 높이 기반 Truncate 솔루션?
- 16. pyodbc 및 insert 문
- 17. MySQL MERGE 스토리지 엔진
- 18. MERGE 명령은
- 19. Mercurial Merge
- 20. Scheme : merge and sort functions
- 21. <include> 및 <merge>
- 22. Git merge --no-ff 및 submodules
- 23. SQL Server에서 IDENTITY_INSERT 및 MERGE 란 무엇입니까?
- 24. SQL Server Merge (정렬) 및 추적 업데이트
- 25. select와 truncate 사이의 교착 상태 (postgresql)
- 26. select 및 insert 문을 사용하여 sql 코드를 프로 시저로 변환
- 27. 취소 "자식은 다시 --merge"
- 28. SQL Server 2008에서 MERGE 사용
- 29. git merge 취소하기
- 30. PHP 및 MYSQL INSERT 오류
추가 할 행 수에 따라 다릅니다. 실행 시간이'merge'와'truncate ... insert'에 대해 동일한 임계 값이있을 것입니다. –
'TRUNCATE'는 "현재"ID 값을 재설정하지만 병합을 사용할 때는 보존된다는 것을 잊지 마십시오. –