SSIS 및 SSDT와 함께 TFS / 소스 제어를 사용하는 대규모 ETL 및 DW 프로젝트에서 일하고 있습니다.
오늘 SSIS 패키지가 데이터베이스 테이블에 BULK INSERT를 수행하는 동안 해당 데이터베이스에 대해 SSDT 스키마 비교를 수행 할 수 없음을 알게되었습니다. 일부 패키지는 완료하는 데 시간이 오래 걸리기 때문에 불행한 일입니다. Schema Compare 기능을 사용하여 데이터베이스의 버전 제어를 위해 SSDT 프로젝트에 변경 사항을 저장하기 위해 데이터베이스 구조의 변경 사항을 감지하려고합니다.
이것에 대해 조금 더 살펴보면 SSDT의 스키마 비교 함수 OBJECTPROPERTY()
가 데이터베이스의 테이블에서 시스템 함수 를 호출하는 SQL 스크립트를 실행한다는 것을 알았습니다 . 특히 제 경우에는 현재 대량 삽입중인 테이블을 참조 할 OBJECTPROPERTY(<object_id>, N'IsEncrypted')
때 호출 이 차단 된 것 같습니다 <object_id>
.
Visual Studio에서 SSDT 스키마 비교는 잠시 후에 시간이 초과되어 차이가 감지되지 않았다고 주장합니다.
SSDT에이 문제에 대한 해결 방법이 있습니까, 아니면 MS Connect 버그 보고서를 제출해야합니까?
또는 BULK INSERT는 SSIS 패키지에서 발생 OBJECTPROPERTY
하므로 테이블에 대한 호출을 호출 하지 않고 삽입 할 수있는 방법이 있습니까? 편집 : SSIS OLE DB 대상에서는 "Lock Table"에서 확인 표시를 제거 할 수 있습니다. 이렇게하면 기능이 작동하지만 일부 상황에서는 성능이 저하 될 수 있습니다. SSDT Schema Compare가 일부 객체가 잠겨 있어도 작업을 수행 할 수있게 해주는 솔루션에 훨씬 관심이 있습니다.