저장 프로 시저 1에는 레코드 세트를 반환하는 선택 쿼리가 있으며 특정 날짜가 지정됩니다. 그 레코드 세트를 통과하기 위해 커서를 사용하고 있으며 다른 행에 대해 다른 저장 프로 시저가 호출됩니다.행별 행 작업에 대한 커서의 대체
저장 프로 시저 2는 커서의 각 값에 대해 약 20K 행을 표에 삽입합니다.
커서에 약 100 개의 레코드가 있으므로 삽입 된 총 행 수는 200K가되므로 프로덕션 환경에서 중지 될 때까지 며칠 동안 쿼리가 실행됩니다.
동일한 쿼리에는 약 8 분이 소요됩니다.
SSIS (dev)에서 foreach 컨테이너를 사용해 보았는데 현재 (dev) 5 분이 걸렸습니다.
이러한 레코드를 더 빨리 삽입 할 수 있습니까?
테이블 값 함수를 사용하는 것으로 생각했지만 두 레코드 간의 조인은 첫 번째 레코드 집합에 날짜 만 포함되어 있기 때문에 어렵습니다.
프로덕션 및 dev에서 데이터 양이 동일합니까? 그렇다면 왜 더 느린가요? –
커서 안에도 200k 개의 행을 삽입하는 데 일 걸리지 않아야합니다. –
시스템 사용률이 거의 0이더라도 프로덕션 시스템에서 동일한 성능을 보입니까? –