시나리오 :TSQL 병합 성능
나는 약 2400 만 기록이있는 테이블이있다. 이 테이블에는 개별 고객과 관련된 가격 기록이 있으며 매일 계산됩니다. 매일 평균 6 백만 레코드가 있습니다. 매일 아침 가격표가 생성되고 가격 책정의 변경 사항을 반영하기 위해 병합 성명서가 실행됩니다.
병합 문은 변수 테이블에 삽입되는 전날의 이전 데이터로 시작되며 그 테이블은 실제 테이블로 병합됩니다. 가장 큰 문제점은 병합 구문이 꽤 오래 걸린다는 점입니다.
내 진짜 질문 변수 테이블 대 실제 테이블 대 임시 테이블을 사용하여 성능을 중심으로합니다. 이와 같은 대형 합병을위한 가장 좋은 방법은 무엇입니까?
6M 행을 사용하는 RAM의 양에 따라 SQL Server에서 이미 테이블 변수를 임시 테이블로 변환 할 가능성이 있습니다. –
매우 빠른 속도로 작성된 TLOG를 끕니다. 일괄 삭제로 처리했습니다. –