2017-01-31 1 views
0

데이터 저장소의 기능인 SSIS에서 작업하는 방법을 묻습니다.SSIS에 연결하는 동안 데이터를 보유하지 않도록 지시하는 방법

SSIS 작업에서 조인 또는 조회를 수행 할 경우 SSIS는 조인 전에 전체 데이터 집합을 "암기"하려고합니다. 내 데이터 세트가 너무 커서 SSIS가 '암기'를 수행하지 못하고 메모리 과부하가 발생합니다.

datastage에서는 조인 단계 앞에 정렬 단계가 있으므로이 작업을 피할 수 있으며 조인 단계에서는 "정렬 된 조인"을 사용하여 조인 단계를 독점하지만 전체 데이터 집합은 메모리에 보관되지 않지만 즉시 사용됩니다 조인이 진행되는 동안 다음 단계로 조인되고 전송되어 메모리를 절약합니다. 정렬 단계를 통해 원본 커넥터에서 정렬 할 수 있으며 "정렬이라고 말하면됩니다". 어느 쪽이든, 데이터 세트는 완전히 암기 될 때까지 보유되지 않습니다. 그들은 ajoin이 발생할 때 전달됩니다.

SSIS에서 어떻게 수행합니까? 고맙습니다.

답변

0

데이터 세트가 너무 커서 오류가 발생하기 때문에 SSIS에서 데이터를 메모리에 저장하지 않기를 바랍니다. Lookup Transform Task에서 SSIS가 캐시 모드로 데이터를 처리하는 방법을 선택할 수 있습니다 (BIDS 2008에서이 작업).

  • 전체 캐시 : 기본적으로 당신은 3 가지 옵션이 어떤 변화를하고있는 데이터베이스가 쿼리와 '기억한다'데이터 전에 또는 그것으로 삽입합니다.
  • 부분 캐시 : 부분 캐시를 사용하고 일치하는 항목이 없으면 데이터베이스를 쿼리합니다.
  • 캐시 없음 : 조회 캐시를 유지하지 않으므로 처리 된 모든 행에 대해 데이터베이스를 쿼리합니다.

당신은

here이, 당신은 병합 조인 변환 사용해야 당신이 대신 조회의

0

찾고 있었다이었다 희망 조회 캐시 모드에 대한 자세한 정보를 찾을 수 있습니다.

병합 조인은 부분적으로 차단됩니다. 즉, 들어오는 행을 정렬해야하며 들어오는 키 중 하나가 새 값으로 이동하기 전까지는 출력이 보류됩니다.

This article은 내가하는 것보다 병합 조인 방식이 더 철저하게 작동하는 방식을 설명합니다. 이 링크가 죽어 버리면 google "SSIS Merge Join Blocking".

하지만 알아야 할 것은 소스 구성 요소를 사용자가 원하는 키로 정렬해야한다는 것입니다. 그런 다음 병합 조인은 각각의 가능한 조인 조합에 필요한만큼의 데이터 만 "암기"하고 나머지 조합은 다음 조합을 처리하는 동안 나머지 데이터 흐름으로 해제합니다.

다른 말로 표현하면 정확히 무엇을 요구하고 있습니까?

관련 문제