2017-11-15 14 views
0

레코드에서 수행해야하는 작업을 식별하기 위해 일부 데이터 일치를 수행해야하는 많은 양의 데이터 마이그레이션을 수행하고 있습니다. 내가 현재하고있는 일은 소스에서 데이터를 읽은 다음 SQL 명령을 사용하여 레코드를 일치시키는 것입니다. 그래서 각 레코드에 대해 데이터베이스를 두 번 눌러야합니다. 그래서 내가 데이터를 레코드 세트로 읽은 다음 그 값을 일치 시키면 성능이 향상 될 것인가?SSIS 데이터베이스 대신 레코드 집합에서 읽기

내가 SQL 서버에서 읽고 있어요 2008 R2 변환을 조회하여

+0

무엇입니까? "근원"? –

+0

SQL Server 2008 R2 –

+0

SSIS에서 조회 변환을 사용하거나 t-SQL에서 병합 프로 시저를 사용한다고 말합니다. –

답변

2

1) 하나의 효과적인 방법 병합 기록

예이다 : enter image description here

2)를 사용하여 병합 절차

예 :

MERGE [dbo].[Value] AS TARGET 
     USING [dbo].[view_Value] AS SOURCE 
     ON ( 
      TARGET.[Col1] = SOURCE.[col1] 

      ) 

    WHEN MATCHED 
    THEN 
    UPDATE SET 
    TARGET.[col3] = SOURCE.[col3] 
    TARGET.[col2] = SOURCE.[col2] 

    WHEN NOT MATCHED BY TARGET THEN 
    INSERT ([col1], [col2], [col3] ) 
    VALUES (SOURCE.[col1], SOURCE.[col2], SOURCE.[col3] ) 
+1

두 경우 모두 조회 대상의 색인이 생성되었는지 확인하십시오. 또한, 높은 카디널리티 조회 (즉, 사실 테이블에 기본 키)와 조회를 사용하는 경우, 나는 캐시를 권장하지 않습니다 (기본값은 전체 캐시입니다). – KeithL