2017-05-22 2 views
0

서비스 브로커 큐에 의해 활성화 된 저장 프로 시저에서 # 임시 테이블을 사용할 때 ~ 동시에 동시 저장 프로 시저가 저장 프로 시저를 여러 번 활성화하면 큐의 "판독기"는 동일한 세션을 사용하고 사실상 동일합니다 임시 테이블?서비스 브로커는 임시 테이블 충돌의 저장 프로 시저 실행/위험에 대해 동일한 세션을 사용합니까?

심판 : this post that sounds like each activation will have its own session.. but am I understanding it wrong ? REF 2 : That msdn doc that left me puzzled

답변

1

각 리더 스레드, MAX_QUEUE_READERS까지, 자신의 세션을해야합니다. 이것은 사실이어야하며, 그렇지 않으면 병렬로 실행할 수 없습니다. 세션 (스레드) 내에서 저장 프로 시저가 반복적으로 호출 될 수 있습니다. 따라서 동시 저장된 프로 시저의 인스턴스는 #temp 테이블에 액세스 할 때 충돌 할 수 없지만 #temp 테이블은 이미 동일한 세션의 이전 실행에서 채워질 수 있습니다.

+0

나를 위해 명확히 해줘서 고마워.) 테이블 변수를 사용하도록 물건을 캡슐화하기 위해 고안된 방법을 사용했습니다. 임시 테이블 대신 변경/삽입 등을 사용하지 않았습니다. 그게 너무 아파요 ^^ –

+0

하지만 세션에 대한 액세스 권한이 없으므로 #temp 테이블 *을 저장 프로 시저 외부에 만들 수 없으므로 proc 내에 #temp 테이블 만 만들 수 있습니다. 이러한 #temp 테이블은 저장 프로 시저가 종료 될 때 자동으로 삭제됩니다. –

+0

예, 절대적으로 생성하고 proc 안에 드롭합니다. –

관련 문제