2017-04-17 2 views
2

하나의 대상을 입력 할 때 문제를 병합 조인 - 적은 병합은 행SSIS는 - 여러 목적지에

Two Destinations - Fewer Merge Join Rows

사람이 설명해 주시겠습니까 가입하세요 - 모든 행

One Destination - All Merge Join Rows

두 목적지 병합 조인 나를위한 행동?

저는 카운트 필드를 생성 한 다음 병합 조인을 사용하여 주 스트림으로 되돌려 보내고 그 카운트를 기반으로 조건부 분할을 수행합니다. 그것은 업데이 트 문없이 잘 작동하지만 조건부 분할에서 업데이 트 문을 함께 실행할 때 다른 결과를 얻을. 어쩌면 두 개의 그림이 동일한 파일이기도 한 데이터에 null이 없다는 것을 언급 할 가치가 있습니다. 어떤 생각이라도 감사합니다. 감사. OLEDB command 행의 현재 일괄 처리를 실행 완료되지 않은 경우

+0

행 수를 조사하고 있습니까? 그림 중 하나에서 패키지는 아직 실행중인 다른 패키지에서 완료되었습니다. –

+0

네, 패키지가 2188 적은 행을 처리하는 이유를 확실히 알지 못합니다. 두 번째 이미지에서 패키지가 멈추는 것처럼 보입니다. 아마도 실행 중이지만 왜 8000 행을 업데이트해야하는지 더 많은 처리가 필요하다는 것을 이해하지 못합니다. –

+1

마지막으로 OLEDB 명령을 통해 최소 8977 개의 개별 업데이트 트랜잭션을 실행 중이므로 시간이 오래 걸릴 것입니다. 스테이징 테이블에 삽입 한 다음 집합 기반 업데이트를 수행하는 것이 일반적으로 더 빠릅니다. –

답변

1

는, 그가 등등 처리를 완료 때까지 더 행을 전송하지 않습니다 선행 요소 (condotionnal 분할)입니다. 또한 더 Data Flow Performance Features

0

의 흐름 DefaultBufferSizeDefaultBufferMaxRows

읽기에 따라되고 난 내가 배운 내용을 업데이트 할 거라고 생각. 로드 된 행 수 (49230 대 52220)는 SSIS의 DefaultMaxBuffer 크기 및 DefaultMaxBuffer 행 설정 때문이었습니다. 이것은 성능을 향상시키지 못했고 메모리에로드 된 레코드 수.

Martin이 위에서 제안한 것처럼 업데이트를 처리하는 데 따른 지연은 비효율적이었습니다. 누구든지 스테이징 테이블이 무엇인지 알고 싶었습니다. 데이터베이스에서 테이블을 만드는 일반적인 용어 일뿐 아니라 SSIS에서 sql 명령을 사용하여 테이블을 만든 다음 SSIS에서 sql 명령을 사용하여 업데이트 문을 실행합니다. 원하는 경우 업데이트 후 준비 테이블을 SSIS 작업에 놓을 수 있습니다. 큰 업데이트를 위해 성능이 얼마나 향상되는지 알려주지는 못합니다.

관련 문제