외부 변수에 대한 동시 요청을 제한하기 위해 카운팅 세마포 (semaphore)를 증가 및 감소시키는 정수 변수를 저장하고 싶습니다. 이것은 병렬 SQL 에이전트 작업에서 실행되는 SSIS 패키지에서이 변수를 읽고 쓰는 방법이 필요하다는 점을 제외하면 쉽습니다. 현재 SQL 에이전트 작업의 인스턴스가 0 ~ 5 개이므로 SSIS 패키지가 한 번에 실행될 수 있습니다.SSIS 교차 프로세스 통신에는 어떤 옵션이 있습니까?
이 변수를 읽거나 쓰려면 어떻게해야합니까? 이 변수를 사용할 코드는 .NET에서 사용자 지정 SSIS 작업으로 작성됩니다.
일반적으로 값이 정확히 맞으면 중요하지 않습니다. 일반적으로 허용 오차 범위 내에 있습니다. 정확한 것은 좋지만 필수는 아닙니다.
전체적으로 파일 시스템, 레지스트리, 데이터베이스, 서버 및 SSIS 에이전트에 액세스 할 수 있지만이 변수를 매우 자주 15-30 스레드까지 확인하고 싶습니다.이 스레드는 일반적으로 파일 시스템 방법 (나는 아마 잘못하고있다), IMO가 데이터베이스에 저장하기에 너무 집중적이다. 틀 렸으면 고쳐줘. 레지스트리에 저장하면 서버 팜에서 변수에 액세스 할 수 없습니다.
도움이 될만한 사람이 있다면 기꺼이 당신의 연인이 될 것입니다.
그냥이 값이 데이터베이스 테이블에 살 수없는 이유가 궁금하십니까? 5 개의 모든 인스턴스에서 해당 인스턴스를 읽을 수 있어야합니다. 적절한 경우 적절한 잠금을 사용해야합니다. 그렇지 않으면 문제가 단순화되는 것일 수 있습니다. 값을 가져 오거나 업데이트해야하는 경우 SqlClient를 통해 사용자 지정 작업의 코드를 통해 값을 가져올 수 있습니다. – kd7
주된 이유는 단순히 내가하고있는 데이터베이스와 이야기하는 양입니다. 위의 개요는 어느 정도 간단합니다. 즉, 5 개의 인스턴스 각각은 루프 내에서 변수에 액세스하는 모든 스레드를 최대 20 개까지 가질 수 있습니다. 변수가 특정 임계 값 미만이 될 때까지 기다립니다. 최악의 시나리오는 초당 약 100 건의 쿼리를 처리하는 것으로 가정합니다. 현재 그들은 로컬 프로세스 변수를 기다리는 동안 100ms 동안 자고 있습니다. 희망이 도움이됩니다. – Jordan