2011-03-30 6 views
0

SQL Server 2008에서 작업하고 있습니다. 에이전트를 사용하여 작업을 생성하고 매분 실행되도록 예약했습니다. 작업은 테이블 XXX에서 임시 테이블로 데이터를 이동 한 다음 테이블 YYY로 데이터를 이동하는 저장 프로 시저를 실행합니다.SQL Server에서 장기 실행 작업 실행

데이터가 상당히 크기 때문에 작업 실행에 1 분 이상 소요될 수 있습니다.

  1. 첫 번째 인스턴스가 아직 실행 중이더라도 작업의 두 번째 인스턴스가 시작 되나요?

  2. 그렇다면 임시 테이블 (상태 = 1)의 레코드를 표시하여 해당 레코드가 이전 작업 인스턴스에서 처리 중임을 나타내야합니까?

  3. 작업의 인스턴스가 현재 실행되고 있는지 확인하여 작업의 두 번째 인스턴스를 시작하지 못하도록하는 방법이 있습니까?

  4. 내가 모르는 다른 해결책이 있습니까? (처리량이 중요 함)

+1

예, 단 하나의 인스턴스 만 가질 수 있습니다. MS는이 기능을 제공하기 위해 MSX/TSX와 협력 할 것을 권장합니다. - http://connect.microsoft.com/SQLServer/feedback/details/633140/sql-server-agent-allow- multiple-instances-of-single-job 모든 작업이 ID를 가지고있는 해당 작업의 사본을 가지고 있다고 생각할 수 있습니다.이 ID를 상태 열에 넣어서 진행할 데이터를 표시하십시오. – Silx

답변

3

특정 작업의 인스턴스는 한 번에 하나만 실행할 수 있습니다.

따라서 첫 번째 작업이 중지되기 전에 다른 작업이 실행되는 것을 방지하기 위해 특별한주의를 기울일 필요가 없습니다.

+1

downvote 이유? 이것은 절대적으로 맞습니다. 동일한 작업을 동시에 실행할 수 없습니다. 그래서 질문에 대한 대답. "이 상황에서 새로운 실행 작업이 시작 되었습니까?" "아니오"입니다. 2 질문을 만드는거야. –

+0

+1 나는 그것 자체가 아니라 스케쥴 당 하나의 인스턴스라고 생각했다. 그러나 테스트를 한 번 해보았습니다. 중복되는 일정이 있더라도 Job 당 하나의 인스턴스입니다. 따라서 나는 또한 그들이 # 1이 "예"일 것이라는 조건으로 모두 질문 2 - 4에 답할 점이 없다는 데 동의한다. –

0

체크는 SQL 서버 작업은 작업에 따라 시작하면

동시에

How to Prevent Sql Server Jobs to Run simultaneously뿐만 아니라 여기
채용
http://technet.microsoft.com/en-us/library/aa213815(v=sql.80).aspx

를 실행 실행을 방지하는 방법
이 게시물 그 스케줄, 당신은 sche 때까지 동일한 서버에서 해당 작업의 다른 인스턴스를 시작할 수 없습니다 duled 작업이 완료되었습니다. 다중 서버 환경에서 모든 대상 서버는 동일한 작업의 하나의 인스턴스를 동시에 실행할 수 있습니다.