2010. 6. 3. 23:54
For컨테이너-무한루프
2010. 6. 3. 23:54 in Business Inteligence (SSIS)
Question |
FOR 문을 이용해서 무한적으로 반복해서 실행하고 싶은 작업이 있습니다. 그러면서도 작업과 작업 사이에 대기시간을 5초 정도 주고 싶습니다. 즉, 매번 반복되면서 5초에 한번씩 A 라는 곳에서 select 해서 B 라는 곳으로 Insert 하는 작업이 필요합니다. 대기시간 주는 것은 여기 사이트에 예시도 있어서 가능 할 것 같은데 계속 실행되면서 select 하려면 어떻게 해야 할까요? |
작업할때 이렇게 대기와 loop가 필요할 때가 있다 JOB으로 등록했을때는 주기가 1분 마다 밖에 안되기 때문에 초 단위 대기가 필요할때는 이렇게 해야한다.
다음과 같이 For루프 컨테이너를 추가합니다.
루프 편집기에서 다른 조건은 설정할 필요 없이 EvalExpression 속성 값에 true를 입력합니다.
이렇게 설정하는 것은 쿼리에서
WHILE (1=1)
BEGIN
…
END
와 비슷한 형태입니다.
이제, For 루프 컨테이너 안에 필요한 작업들을 설정해서 넣고선, 5초 동안 대기하는 것을 구현해야 합니다.
이전에 올린 글에 FOR 루프 컨테이너를 이용해서 일정 시간 동안 대기하는 것을 구현한 것이 있습니다. 하지만 이 방법은 쓰지 마시기 바랍니다. (CPU가 과도하게 높이 올라갑니다.)
http://www.sqlleader.com/mboard.asp?exec=view&strBoardID=SS2005SSIS&intSeq=523
대신, SQL 명령을 이용하는 것이 가장 바람직할 것 같습니다.
작업들을 구성한 후, 가장 마지막 부분에 SQL 실행 작업을 추가한 후,
DB 연결을 설정하고, 다음과 같은 간단한 명령을 사용합니다.
예) 5초 동안 대기를 해야 할 경우
WAITFOR DELAY ’00:00:05’
매 번 루핑 때 마다 마지막 단계에서 5초간 대기하는 무한 루프가 만들어졌습니다.
이 글은 스프링노트에서 작성되었습니다.
'Business Inteligence (SSIS)' 카테고리의 다른 글
SSIS::플랫 파일 가져오기 에러. (0) | 2012.02.09 |
---|---|
SQL2008에서 SQL2000 DTS열기 (0) | 2010.06.07 |
스크립트task사용 (0) | 2010.06.03 |
Debugging and Logging in SSIS (0) | 2010.06.03 |