SSIS 패키지를 실행할 때 주의 사항
한대성
Microsoft pREMIER FIELD ENGINEER
SSIS 패키지를 만들어서 수행할 때, 수동으로 패키지를 돌리는 경우가 종종 있습니다.
패키지의 일부분을 수정한 후, 그냥 BIDS 내에서 실행을 시키는 것이지요. 정확히 말해 이러한 행위는 SSIS 패키지 디버깅 작업입니다.
패키지 내의 작업 개체가 별로 많이 않을 때에는 상관없지만, 다음과 같은 경우에는 실행시킬 때 주의하셔야 할 것이 있습니다.
예를 들어 다음과 같이 간단한 패키지를 고려해 봅시다.
그림 1) 단순 반복 수행하는 패키지
For 루프 컨테이너에서 1000번 반복 수행을 하는 단순한 패키지 입니다.
이 패키지를 BIDS 내에서 실행시켰을 때와 dtexec.exe 명령으로 실행시켰을 때의 수행 시간과 서버(패키지가 실행되는)의 CPU를 비교해 보면 다음과 같습니다.
그림 2) BIDS에서 실행시켰을 때
그림 3) DTEXEC 명령을 이용해서 실행시켰을 때
그림 4) % CPU 성능 비교
구분 |
BIDS 내에서 실행 |
Dtexec 명령 이용 실행 |
수행 시간 |
20.608초 |
3.9초 |
% of CPU |
최대 100 |
최대 58 |
BIDS 내에서 패키지를 잘못 실행했다간 서버를 다운 시킬 수 있습니다.
참고로, 이 패키지와 같이 많은 횟수를 반복해서 수행할 경우, BIDS의 Process 탭 부분에 결과를 뿌리는 부분에서 상당한 부하를 발생시키기도 합니다.
그림 5) Progress 탭 결과 출력 화면
출력할 결과가 아주 많은 경우, 패키지를 중지시켜도 결과를 출력하는 작업 때문에 서버가 거의 멈추는 경우도 발생할 수 있습니다. 이를 방지하기 위해 SSIS 2008에서는 다음과 같은 고마운(^^) 기능이 추가되었습니다.
그림 6) 진행률 보고 디버깅 활성 여부 옵션
반복 수행이 많을 경우, 위의 옵션을 끈 상태에서 BIDS에서 패키지를 실행시키는 것이 그나마 안전하게 패키지를 수행하는 방법입니다.
결론
작업 개체(=태스크)가 많은 패키지의 경우, 직접 BIDS에서 수행하지 말고 dtexec 명령을 이용해서 패키지를 수행토록 한다~!
'연구개발 > DTS & SSIS' 카테고리의 다른 글
DelayValidation 속성을 이용하여 패키지 빨리 열기 (0) | 2011.08.27 |
---|---|
이벤트 로그에서 패키지 실행 기록 분리하기 (0) | 2011.08.27 |
데이터 내보내기를 이용한 유니코드 비 유니코드 변환 만들기 (0) | 2011.08.27 |
Event Log를 활용해보자. (응용 편) (0) | 2011.08.27 |
Event Log를 활용해보자. (이론 편) (0) | 2011.08.27 |