2010-07-21 7 views
2

테이블에서 데이터를 읽고 열 값을 기반으로 두 개의 다른 테이블에 레코드를 저장하는 패키지가 있습니다. 패키지는 트랜잭션 필수 속성을 사용합니다. 최근까지 소스 테이블에 클러스터되지 않은 인덱스를 작성하여 성능을 향상시킬 때까지 원활하게 실행되었습니다. 패키지는 "유효성 검증이 시작되었습니다"라는 진행 상황을 표시 한 후 실행을 진행하는 것을 거부합니다.ValidateExternalMetadata 속성은 정확히 무엇을합니까?

  1. 내가 밖으로 제외한 모두를 사용할 필요가 없습니다 거짓

에 클러스터되지 않은

  • 설정 ValidateExternalMetadata 속성 대신 클러스터 된 인덱스를 사용

    두 가지 문제를 해결 그들과 패키지가 원활하게 실행됩니다. 나는 선택권 1을 선택했다 그러나 두포의 밑에 일어나고있는 무슨을 이해하지 않는다. 내 질문은

    1. 열 메타 데이터를 확인하는 것 이외에 속성을 false로 설정하면 어떻게됩니까?
    2. 클러스터되지 않은 인덱스로 인해 유효성 검사에 문제가있는 이유는 무엇입니까?

    추 신 : 전에는 표에 색인이 없었습니다.

  • 답변

    0

    이 설명 될 수있다 :

    http://support.microsoft.com/kb/2253391

    SQL Server 통합 서비스 (SSIS) 패키지의 실행이 응답하지 않는다 Microsoft SQL Server의 패키지 DTC 트랜잭션을 사용할 때

    +0

    크리스. 나는 그것을 보았지만 내부에서 일어나는 일을 설명하지는 않습니다. – Faiz

    9

    이전 답변의 KB linked to은이 특정 문제를 해결해야하지만 ValidateExternalMetadata 플래그가하는 일을 완전히 설명하지는 않습니다.

    외부 시스템과 상호 작용하는 대부분의 SSIS 구성 요소 (예 : 조회 변환 또는 원본/대상 구성 요소)는 외부 메타 데이터 열을 정의합니다. 이들은 구성 요소가 상호 작용하는 테이블/뷰/쿼리의 열을 나타냅니다. 이 메타 데이터 정보는 패키지 파일 (.dtsx)에 캐시됩니다.

    Validation 단계에서 구성 요소는 패키지의 캐시 된 메타 데이터가 기본 테이블/뷰/쿼리와 여전히 동기화되어 있는지 확인합니다. 불일치가 있으면 구성 요소가 특수 상태 (VS_NEEDSNEWMETADATA)를 반환합니다. 디자인 타임에이 문제가 발생하면 SSIS는 ReinitializeMetadata()를 호출하여 메타 데이터 새로 고침을 트리거합니다. 런타임시 이로 인해 오류가 발생합니다.

    메타 데이터 유효성 검사에 비용이 많이 소요될 수 있으므로 (예 : 열이 많은 대형 테이블) ValidateExternalMetadata 플래그를 false로 설정하여이 유효성 검사를 비활성화 할 수 있습니다. 일반적으로 패키지와 기본 테이블/뷰/쿼리가 동기화 상태로 유지 될 때만이 작업을 수행합니다.

    관련 문제