2017-11-20 15 views
2

여러 개의 플랫 파일을 대량 가져 오기 위해 OLE DB 대상을 사용하고있었습니다. 튜닝을 한 후 SQL Server Destination이 25 - 50 % 더 빨라졌습니다.SQL 서버 대상 대 OLE DB 대상

웹상에 모순되는 정보가 있기 때문에 혼란 스럽지만 일부는 반대하고 일부는 사용을 제안합니다. 제작에 적용하기 전에 심각한 함정이 있습니까? 이 Microsoft Article에 따르면 감사

+0

어떤 정보가 모순입니까? SQL Server 대상의 단점은 삽입하려는 SQL Server에서 패키지가 실행 중이어야한다는 것입니다. 따라서 삽입하려는 서버와 다른 서버에서 패키지를 실행하려면 사용하지 마십시오. 나는 그 정보가 아주 분명하다고 생각했다. –

+1

이러한 유연성 감소뿐만 아니라 SQL Server 대상에서 오류 메시지가 훨씬 더 복잡 할 수 있으므로 이러한 이유로 인해 오류 메시지를 사용하지 않는 것이 좋습니다. 예를 들어, (그리고 Matt는 알고 있어야합니다.) https://www.mattmasson.com/2012/06/should-i-use-the-sql-server-destination/ – Rich

+0

SQL을 통해 OLE DB를 사용하는 것이 좋습니다. 서버 목적지. 제한 사항 만있는 경우 : 공유 메모리를 사용하고 오류 출력이 없으면 나는 그와 함께 살 수 있습니다. 난 그냥 미래에 나올 수있는 가능한 문제를 피하기 위해 싶었어 –

답변

1

SQL 서버 대상

:

SQL 서버 대상은 SQL Server 테이블과 뷰에 로컬 SQL Server 데이터베이스 및 대량 데이터를로드에 연결합니다. 원격 서버의 SQL Server 데이터베이스에 액세스하는 패키지에서는 SQL Server 대상을 사용할 수 없습니다. 대신 패키지는 OLE DB 대상을 사용해야합니다.

SQL Server 대상은 대량 삽입 작업에서 제공하는 것과 동일한 고속 SQL Server 데이터 삽입 기능을 제공합니다. 그러나 SQL Server 대상을 사용하면 데이터가 SQL Server에로드되기 전에 패키지에서 변환을 열 데이터에 적용 할 수 있습니다.

OLEDB 목적지 : SQL 서버에 데이터를로드하기 위해

, 당신은이 Microsoft Article에 따라 대신 OLE DB 대상

OLEDB 대상

의 SQL Server 대상을 사용하는 것이 좋습니다 - 빠른로드 옵션 : 데이터를 OLE DB 대상의 테이블이나 뷰에로드하고 대량로드 옵션에 최적화 된 빠른로드 옵션을 사용합니다.

MSDN Page에 따르면 SQL Server 대상

OLEDB 목적지 :

도널드 파머, 통합 서비스에 대한 이전의 그룹 프로그램 관리자는 당신이를 사용하여 성능의 5 ~ 10 % 증가를 얻을 수 있다고 말했다 SQL Server Destination. 이러한 정보에


결론

자료, 당신은를 (이것은 대량 삽입을 사용) SQL Server Destination 데이터 를 삽입의 성능을 향상 말할 수 있지만 로컬 SQL은 특정 사건에 대한 설계 섬기는 사람. OLEDB Destination이 더 일반적이며 다른 경우가 좋습니다.

또한 당신은 단순히 삽입 성능을 향상하기 위해 OLE DB destination에 (또한 대량 삽입을 사용)를 Fast Load 데이터 액세스 모드 를 사용할 수 있습니다. 하지만 빠른로드 옵션을 사용하면 대상 테이블에서 테이블 잠금을 수행하고 다른 사용자가 삽입 중에 액세스하지 못하도록해야합니다.

+1

한 가지 고려해야 할 것은, 'OLE DB 연결'은 광범위하게 'SQL 서버 목적지'이며, 관련 주제를 찾기가 더 쉽다는 것이다. – Yahfoufi

0

Hadi의 정답을 높이려면 SQL Server 대상을 사용하지 마십시오.

내 경험상 성능 향상은 대상 데이터베이스와 동일한 컴퓨터에서 패키지를 실행해야한다는 제한보다 중요하지 않습니다. 그것은 오늘 또는 1 년 후에 당신에게 옳을 수도 있고 그렇지 않을 수도있는 프로세싱 아키텍처를 강제합니다. 그것은 나의 취향에 너무 융통성이 없다.

내가 SQL Server 대상을 피하는 것을 주장하는 또 다른 큰 이유는 내가 경험 해본 평범한 버그입니다. 빈 테이블 - 라운드 1과 동일한 플랫 파일, 뭔가 잘못되었다는 모호한 오류 메시지 (특정 정보는 기억할 수 없음)로 중단됩니다. 패키지를 즉시 다시 시작하면 예상대로 작동합니다. 아마 가장 겸허 한 독자는 재 처리 시간에 대한 처리 시간을 고려해 볼 수 있지만 2008 년 이후로는 가치가 없습니다.