문제

나는 다음과 같은 일을하고 싶다 :

exec sproc1 and sproc2 at the same time
when they are both finished exec sproc3

DTS 에서이 작업을 수행 할 수 있습니다. Transact SQL에서 수행 할 수있는 방법이 있습니까? 아니면 배치 스크립트 (예 : VBS 또는 PowerShell)로 수행 할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

SP _ 시작 _ 작업

나는 현재 비슷한 일을하고 있으며, SSIS 또는 일부 외부 쉘 사용을 피하는 유일한 방법은 내로드 루틴을 '스레드'로 쪼개고 단일 마스터 Sqlagent 작업을 시작하는 것입니다. 스레드가있는 것처럼 많은 sp _ start _ 작업을 실행합니다. 그 시점부터 그들은 모두 자율적으로 실행됩니다.

우리가 찾고있는 것이 아니라 결과는 동일합니다. 하위 작업의 작업 상태를 테스트하면 SPROC 3의 조건부 시작도 구현할 수 있습니다.

한 번에 모두 사용할 수 없다면 8 코어의 요점은 무엇입니까?

다른 팁

CLR 저장 프로 시저를 만들 수 있습니다 (C#사용)이 자체 스레드에서 첫 두 개를 호출 한 다음 둘 다 완료 될 때까지 차단 한 다음 세 번째를 실행할 수 있습니다.

상황에서 CLR 스프로스를 사용할 수 있습니까? 그렇다면이 답변을 편집하여 자세한 내용을 설명하겠습니다.

동시에 두 SP를 모두 실행해야합니까?

단일 SP 내의 간단한 CRUD 문을 사용하면 SQL S가 발견 한 것을 발견했습니다. 어떤 것이 병렬로 실행될 수 있는지 결정하는 데 매우 적합합니다. T-SQL 문에서 순차적으로 호출되는 경우 SQL S. 2 SP를 병렬로 실행 한 적이 없습니다. 가능한지조차 모릅니다.

이제 DTS가 실제로 병렬로 실행합니까? 그것은 단순히 순차적으로 실행 한 다음 마지막 마무리 후 성공적으로 3 번째 SP를 호출 할 수 있습니다.

그것이 실제로 병렬로 실행된다면, 아마도 dts를 고수해야하지만, DTS 패키지 호출, 예를 들어, 10 개의 헤비 듀티 SP를 병렬로 사용하는 경우 어떻게 해야하는지 알고 싶습니다 ...해야 할 수도 있습니다. 나 자신을 배우는 몇 가지 테스트 : d

SSI를 사용할 수 있습니다. 이것의 이점은 패키지를 SQL 서버에 저장하고 쉽게 예약 할 수 있다는 것입니다.

PowerShell 또는 거의 모든 외부 스크립팅 언어에서 SQL 명령 줄 OSQL 또는 SQLCMD를 사용할 수 있습니다. 이 기술은 또한 XP_CMDSHELL을 사용하여 SQL 서버에서 예약하는 데 사용될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top