2012-11-17 2 views
0

저는 SSIS에서 상대적인 초보자이므로 어리석은 행동을하고 있습니다.executePackage는 서브 패키지를 실행하는 데 오랜 시간이 걸리는 것으로 보입니다.

나는 이질 큐를 반복하고 개체를 한 번에 하나씩 처리하는 과정이 있습니다. 이 프로세스는 현재 '세트 로직'과 그로부터 떨어지는 것들로 진행되고 있습니다. 나는 그것을 반복적으로 재 작업하라는 요구를 받았고, 그래서 결정이 내게 이루어졌다.

나는 하나의 패키지에 큐 논리를 구현하고 다른 패키지에서 실제 처리를 선택했다.

모든 내가 지금 과정 및 실행이 ...

비교적 잘 고려 가고 있지만 느립니다. 항목 당 9 초. 분명히 나는이 해결책을 제시 할 수 없다. :-)

각 루프의 1.5 ~ 2 초가 대기열 루프의 ExecutePackage Task에 있습니다.

어려운 숫자를 얻는 방법을 알아낼 수는 없지만 성능 튜닝 방법으로 깜박이는 녹색 상자 방법을 사용하고 있습니다. 다른 단계는 매우 빠르다. 인덱스를 추가하고 SQL을 SPS로 변경하면 모든 일반적인 트릭이 도움이되었습니다.

  1. 흰색/노란색/녹색으로 바뀌는 상자와 관련하여 UI가 전혀 실현 가능합니까? 일부 작업은 진행률 탭에서 시간을보고합니다. 일부는 그렇지 않습니다. 그래서 나는 노란 시간을 세고있다.

  2. 서브 패키지를 그렇게 비싸게해야합니까? 내가 한 변경 사항은 'RunInASeparateProcess'를 FALSE로 변경 한 것입니다. 그렇지 않은 경우 하위 패키지에서 다음과 같은 메시지가 표시됩니다.

    오류 : 0xC0012024 (스크립트 태스크) : "스크립트 태스크"태스크는이 버전의 Integration Services에서 실행할 수 없습니다. 상위 버전이 필요합니다. 작업이 실패했습니다 : 스크립트 작업

  3. 내가 한 일은 여러 패키지를 옹호하는 것 같습니다. 누구든지 어떤 카운터 패턴을 가지고 있습니까? 코스에 있어야할까요? 나는 1 개의 꾸러미로 바꾸기 시작했다. 복사/붙여 넣기가 잘 SequenceContainers와 함께 작동하지 않는 것 같습니다. 부모 패키지에있는 모든 변수를 다시 만들어야합니다. 할 수 있지만 그 대답은 확실하지 않습니다.

  4. 누구나 공유 할 의사가있는 조정 리소스/웹 사이트/책을 알고 있습니까?

업데이트 - 나는 문제가 무엇인지 파악하기위한 노력의 일환으로 물건을 아래로 찢어되고있다. 변수 값을 전달하는 패키지 구성이라고 생각했습니다. 나는 그것이다고 생각지 않는다. 변수가없는 다른 패키지에 변수를 전달할 수 있으며 빠릅니다.

두 개의 연결 관리자를 추가하여 간단한 서브 패키지를 느리게 만들 수 있습니다. 갑자기 내가 주 패키지와 하위 패키지 모두에서 Oracle 서버와 SQL 서버에 대한 연결을 만들고 끊을 수 있음을 알게되었습니다.

이 관찰에서 나는 맞습니까?

두 패키지간에 연결을 다시 사용할 수있는 방법이 있습니까? 내가 구글 일 때, 내가 보는 것의 대부분은 연결 문자열 전달을위한 제안이다.

업데이트 - 두 패키지를 하나로 결합했습니다. 이 성능은 항목 당 약 1.25 초가 아니며 약 9에서 낮아졌습니다. 변경된 점을 지적 할 수있는 유일한 점은 여러 연결을 만드는 대신 단일 연결을 다시 사용한다는 것입니다.

감사합니다. 친절하게 도와 주셔서 감사합니다. 그렉

+1

BIDS에서 실행될 때의 실적에 어떤 근거가 있습니까? 어떤 버전을 사용하고 있습니까? (SSIS에는 컴파일은 언급되어 있지 않지만 2012 년은 다른 버전보다 더 가깝습니다). BIDS를 실행하고 있으므로 추가 비용이 발생할 수 있습니다. 로깅을 활성화하고 테스트 서버에서 예약 된 작업으로 실행하여 성능이 어떻게되는지보십시오. –

+0

때때로 UI가 안정적이지 않습니다 (2008 버전). 특히 다른 패키지 안에 패키지가있을 때 특히 그렇습니다. 또한 SQL 작업으로 서버에서 패키지를 실행하는 것보다 속도가 느립니다. 서버에서 SQL 작업으로 패키지를 실행하고 거기에서 속도를 분석하십시오. –

+0

윌리엄, 나는 컴파일이라는 용어를 잘못 사용했다. BIDS 2005가 있습니다. 패키지를 서버에서 가져 오려고합니다. 처리 할 변경 제어 절차가 있으므로, 나는 거기에 가기 전에 가능한 한 얻을 수 있도록 노력하고 있습니다. – greg

답변

1

로깅을 사용하도록 설정하면

, 나는 dtexec를 사용하여 명령 창에서 패키지를 실행 건의 할 것입니다. 이것이 서버 환경을 완벽하게 복제하지는 않지만 (a) 잠재적 인 성능 문제로 BIDS를 제거하고 (b) 변경 제어 기능을 뛰어 넘지 않고 수행 할 수있는 이점이 있습니다.

+0

나는 오늘 이것을 들여다 볼 것이다. 단일 모노 리식 패키지 (한숨)를 만들었으며 하루 정도 지나면 데이터가 처음부터 따라 잡을만큼 빠르게 실행됩니다. 나는 몇 가지 다른 이슈들을보고 있는데 1.3 초를 ~ .5로 낮추기를 바란다. 그런 다음 큰 날을위한 준비 과정에서 dtexec과 구성을 살펴볼 것이다. 답변 해 주셔서 감사합니다. – greg

관련 문제