2014-09-26 2 views
0

의 spid를 얻을 수 있으므로 필자는 본질적으로 동적 쿼리 생성기입니다 ... 사용자가 설정 한 쿼리의 복잡성에 따라 쿼리를 수행하는 데 20 일이 걸릴 수도 있습니다 + 분을 실행합니다.현재 실행중인 저장 프로 시저

  1. 사용자가 UI를 통해 매우 복잡한 사용자 지정 쿼리를 만드는 끝낼 수 있도록이는 동적 쿼리 생성기입니다 :

    그래서, 나는 이미이 제안을 피하기 위해하고있어 몇 가지이 질문을 서문하기 . 내가 보관하는 로그에서 시간이 급증 할 때 색인을 추가합니다.

  2. 이 테이블에서 통계를 업데이트하고 있습니다.
  3. 나는 시저와 가능한 한 많은 관련 테이블을 최적화 한 ...

나는이를 수용하기 위해 현재 (8 분) 매우 높은 설정 내 사이트에 시간 제한을 가지고 있지만 내가하고 싶은 것 do는 app 밖에서 실행될 대기열에이 proc로 오랫동안 실행중인 호출을 걷어차는 것이다.

내가 궁금한 것은 저장 프로 시저 또는 더 구체적으로 동적 SQL을 호출 할 때 쿼리에 대해 생성 된 spid에 대한 핸들을 가져 오는 방법이 있는지 여부입니다. 마찬가지로, 상상, SQL Server 관리 스튜디오에서 중지 단추 본질적으로 현재 실행중인 쿼리를 죽일이 비슷한 기능을 활용하고 ... 나는 독립적으로 실행 한 낮추어 시간 제한 쿼리를 중단 할 수있을 것이라고 (아마도 다른 서버에서도) 결과를 이메일로 보내 주시면 도움이 될 것입니다!

답변

3

당신은 을 사용하여 현재 실행중인 SPID를 얻을 수 있습니다 @@ SPID 여기

은 MSDN 링크를 http://msdn.microsoft.com/en-us/library/ms189535.aspx

+0

감사합니다! spid를 예약하거나 프로 시저 호출을 통해 spid를 지정하는 방법이 있는지 알고 있습니까? 만약 내가 너무 오래 실행하면 sp_kill 밖에서 감시자를 가질 수있는 쿼리를 미리 시작할 수 있다면 좋을 것입니다 ... 더 큰, 궁극적으로 모든 것이 대신 대기열을 통해 실행해야한다고 생각합니다. 내 계획은 SQL crushers 거기에 추진하고 ... – zach

+0

@ zach, 거기에 spid를 예약 할 수있는 방법은 없습니다,하지만 당신은 테이블에 현재 spid 값을 저장할 수 있습니다, 테이블을 사용하여 활성 스파이더를 확인하고 오래 죽일 수있는 저장 프로 시저를 정리 실행 스파이더. – radar

+0

rajesh에게 감사드립니다. 귀하의 도움에 감사드립니다. – zach